Skip to content
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

🔖 Release 3.5.2 #347

Merged
merged 5 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pip_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.1
3.5.2
2 changes: 1 addition & 1 deletion pros/cli/conductor.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ def upgrade(ctx: click.Context, project: c.Project, query: c.BaseTemplate, **kwa
"""
analytics.send("upgrade-project")
if not query.name:
for template in project.templates.keys():
for template in tuple(project.templates.keys()):
click.secho(f'Upgrading {template}', color='yellow')
q = c.BaseTemplate.create_query(name=template, target=project.target,
supported_kernels=project.templates['kernel'].version)
Expand Down
46 changes: 16 additions & 30 deletions pros/conductor/conductor.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,8 @@ def apply_template(self, project: Project, identifier: Union[str, BaseTemplate],
raise dont_send(
InvalidTemplateException(f'Could not find a template satisfying {identifier} for {project.target}'))

apply_liblvgl = False # flag to apply liblvgl if upgrading to PROS 4

# warn and prompt user if upgrading to PROS 4 or downgrading to PROS 3
if template.name == 'kernel':
isProject = Project.find_project("")
Expand All @@ -294,26 +296,14 @@ def apply_template(self, project: Project, identifier: Union[str, BaseTemplate],
if not confirm:
raise dont_send(
InvalidTemplateException(f'Not upgrading'))
apply_liblvgl = True
if template.version[0] == '3' and curr_proj.kernel[0] == '4':
confirm = ui.confirm(f'Warning! Downgrading project to PROS 3 will cause breaking changes. '
f'Do you still want to downgrade?')
if not confirm:
raise dont_send(
InvalidTemplateException(f'Not downgrading'))
elif not project.use_early_access and template.version[0] == '3' and not self.warn_early_access:
confirm = ui.confirm(f'PROS 4 is now in early access. '
f'Please use the --early-access flag if you would like to use it.\n'
f'Do you want to use PROS 4 instead?')
self.warn_early_access = True
if confirm: # use pros 4
project.use_early_access = True
project.save()
kwargs['version'] = '>=0'
kwargs['early_access'] = True
# Recall the function with early access enabled
return self.apply_template(project, identifier, **kwargs)

self.save()

if not isinstance(template, LocalTemplate):
with ui.Notification():
template = self.fetch_template(self.get_depot(template.metadata['origin']), template, **kwargs)
Expand All @@ -333,6 +323,16 @@ def apply_template(self, project: Project, identifier: Union[str, BaseTemplate],
force_user=kwargs.pop('force_user', False),
remove_empty_directories=kwargs.pop('remove_empty_directories', False))
ui.finalize('apply', f'Finished applying {template.identifier} to {project.location}')

# Apply liblvgl if upgrading to PROS 4
if apply_liblvgl:
template = self.resolve_template(identifier="liblvgl", allow_online=download_ok, early_access=True)
if not isinstance(template, LocalTemplate):
with ui.Notification():
template = self.fetch_template(self.get_depot(template.metadata['origin']), template, **kwargs)
assert isinstance(template, LocalTemplate)
project.apply_template(template)
ui.finalize('apply', f'Finished applying {template.identifier} to {project.location}')
elif valid_action != TemplateAction.AlreadyInstalled:
raise dont_send(
InvalidTemplateException(f'Could not install {template.identifier} because it is {valid_action.name},'
Expand All @@ -358,22 +358,8 @@ def new_project(self, path: str, no_default_libs: bool = False, **kwargs) -> Pro
else:
use_early_access = self.use_early_access
kwargs["early_access"] = use_early_access
if kwargs["version_source"]: # If true, then the user has not specified a version
if not use_early_access and self.warn_early_access:
ui.echo(f"PROS 4 is now in early access. "
f"If you would like to use it, use the --early-access flag.")
elif not use_early_access and not self.warn_early_access:
confirm = ui.confirm(f'PROS 4 is now in early access. '
f'Please use the --early-access flag if you would like to use it.\n'
f'Do you want to use PROS 4 instead?')
self.warn_early_access = True
if confirm:
use_early_access = True
kwargs['early_access'] = True
elif use_early_access:
ui.echo(f'Early access is enabled. Using PROS 4.')
elif use_early_access:
ui.echo(f'Early access is enabled.')
if use_early_access:
ui.echo(f'Early access is enabled. Experimental features have been applied.')

if not is_pathname_valid(str(Path(path).absolute())):
raise dont_send(ValueError('Project path contains invalid characters.'))
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.1
3.5.2
2 changes: 1 addition & 1 deletion win_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.1.0
3.5.2.0
Loading