Skip to content

Rename New Project to New Folder from Template and update the associated new project wizard user experience #7893

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

softwarenerd
Copy link
Contributor

@softwarenerd softwarenerd commented May 30, 2025

Description

This PR addresses #7559 by renaming New Project to New Folder from Template and updating the associated new project wizard user experience.

As part of this work:

  • New Project Wizard has been renamed to New Project Flow.
  • Project Type has been renamed to Folder Template.

When New Project from Template is invoked, there are now four folder templates:

image

  • Python Project
  • R Project
  • Jupyter Notebook
  • Empty Project (creates an empty project with no associated runtime or runtime environment)

Python Project

Here are screen shots of the New Folder from Template user experience for a new Python Project:

User selects Python Project folder template:
image
 
User selects folder name and location:
image
 
User configures the project, and then presses Create:
image
 
User selects where to open their newly-created folder:
image

Empty Project

Here are screen shots of the New Folder from Template user experience for a new Empty Project:

User selects Empty Project folder template:
image
 
User selects folder name and location, and then presses Create:
image
 
User selects where to open their newly-created folder:
image

Release Notes

New Features

  • N/A

Bug Fixes

QA Notes

Tests:
@:new-project-wizard
@:welcome

Copy link

github-actions bot commented May 30, 2025

E2E Tests 🚀
This PR will run tests tagged with: @:critical @:new-project-wizard @:welcome

readme  valid tags

Copilot

This comment was marked as outdated.

DavisVaughan
DavisVaughan previously approved these changes May 30, 2025
Copy link
Contributor

@DavisVaughan DavisVaughan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a pretty big step in the right direction, and simplifies the language a lot!

Main comment is about the behavior of New Folder..., see below, but otherwise looks great

@jonvanausdeln
Copy link
Contributor

Did this change the Welcome Page as well? We do have a couple of Welcome screen tests that may need to be updated.

https://github.com/posit-dev/positron/blob/bd3eba42d916aea13a87f6b7681532a63e33bb40/test/e2e/tests/welcome/welcome.test.ts

I can help if needed!

@softwarenerd softwarenerd force-pushed the ui/new-folder-updates branch from 1593fda to d042327 Compare May 30, 2025 19:34
juliasilge
juliasilge previously approved these changes Jun 3, 2025
Copy link
Contributor

@juliasilge juliasilge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a HUGE improvement in terms of clarity and consistency, and I'm happy for this version of the FLOW 😄 to be what we launch with.

@softwarenerd softwarenerd changed the title Rename New Project to New Folder and update the associated new project wizard user experience Rename New Project to New Folder from Template and update the associated new project wizard user experience Jun 4, 2025
@softwarenerd
Copy link
Contributor Author

Did this change the Welcome Page as well? We do have a couple of Welcome screen tests that may need to be updated.

https://github.com/posit-dev/positron/blob/bd3eba42d916aea13a87f6b7681532a63e33bb40/test/e2e/tests/welcome/welcome.test.ts

I can help if needed!

I have made the necessary adjustments.

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR renames “New Project” to “New Folder from Template” and updates the associated wizard experience by renaming components, dialogs, CSS classes, actions, and related localizations.

  • Updated component and CSS names from “wizard” to “flow” to align with the new terminology.
  • Refactored actions and dialogs for creating a new folder from a template, including updates in localization and test cases.
  • Removed the deprecated newFolderModalDialog file to streamline the new folder workflow.

Reviewed Changes

Copilot reviewed 81 out of 81 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
folderTemplateGroup.tsx Renaming and updating folder template picker logic.
flowSubStep.tsx, flowStep.tsx, flowFormattedText.tsx Renaming components and CSS to reflect “flow” terminology.
chooseNewFolderWindowModalDialog.tsx Updated dialog UI and localization for new folder creation.
positronActions.ts Updated folder action triggers and registration.
Test and extension files Adjusted naming in tests and commands to use folder terminology.
Comments suppressed due to low confidence (1)

src/vs/workbench/browser/positronNewFolderFlow/components/folderTemplateGroup.tsx:57

  • [nitpick] Consider using a unique identifier from folderTemplate as the key instead of the array index to improve stability during re-renders.
<FolderTemplatePicker key={index} ... />

juliasilge
juliasilge previously approved these changes Jun 4, 2025
Copy link
Contributor

@juliasilge juliasilge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Working great! 🚀

As a follow up, we might want to update the tag for tests from new-project-wizard to new-folder-flow cc @midleman

Comment on lines 55 to 58
const [projectName, setProjectName] = useState(context.folderName);
const [parentFolder, setParentFolder] = useState(() => pathUriToLabel(context.parentFolder, labelService));
const [projectNameFeedback, setProjectNameFeedback] = useState(context.projectNameFeedback);
const [maxProjectPathLength, setMaxProjectPathLength] = useState(() => getMaxProjectPathLength(parentFolder.length));
const [projectNameFeedback, setProjectNameFeedback] = useState(context.folderNameFeedback);
const [maxProjectPathLength, setMaxProjectPathLength] = useState(() => getMaxFolderPathLength(parentFolder.length));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can update these state props to refer to folder. I'll push up those changes since @softwarenerd is OOO.

context.folderTemplate !== selectedProjectType ||
context.folderName === ''
) {
const defaultProjectName = getDefaultFolderName(selectedProjectType);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few updates to variables are needed here as well! I'll get those pushed up.

<FolderTemplateGroup
describedBy='folder-template-selection-step-description'
labelledBy='folder-template-selection-step-title'
name='projectType'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can update the name field for this input form as well. I didn't see any tests that were referencing this but I'll rerun all the e2e tests to make sure it doesn't break anything

"Create"
))(),
disable: !selectedInterpreter
}}
title={(() => localize(
'rConfigurationStep.title',
"Set up project configuration"
"Project Configuration"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing we are using the term project here on purpose for the R configuration step.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll want to rename this file. I'm not sure what we want to call this - can be handled in a follow up.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we delete this file? It looks like its an unused feature flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants