Skip to content

Separate default install tag from default launch tag. #146

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 2 commits into
base: main
Choose a base branch
from
Open
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
6 changes: 5 additions & 1 deletion src/manage/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
# or check out the docs for administrative controls:
# https://docs.python.org/using/windows
DEFAULT_SOURCE_URL = "https://www.python.org/ftp/python/index-windows.json"
DEFAULT_TAG = "3.14"
DEFAULT_TAG = "3"


# TODO: Remove the /dev/ for stable release
Expand Down Expand Up @@ -253,6 +253,7 @@ def execute(self):
"fallback_source": (str, None, "env", "path", "uri"),
"enable_shortcut_kinds": (str, config_split_append),
"disable_shortcut_kinds": (str, config_split_append),
"default_install_tag": (str, None),
},

"first_run": {
Expand Down Expand Up @@ -792,12 +793,15 @@ class InstallCommand(BaseCommand):
from_script = None
enable_shortcut_kinds = None
disable_shortcut_kinds = None
default_install_tag = None

def __init__(self, args, root=None):
super().__init__(args, root)

if not self.source:
self.source = DEFAULT_SOURCE_URL
if not self.default_install_tag:
self.default_install_tag = self.default_tag
if "://" not in str(self.source):
try:
self.source = Path(self.source).absolute().as_uri()
Expand Down
2 changes: 2 additions & 0 deletions src/manage/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@

def merge_config(into_cfg, from_cfg, schema, *, source="<unknown>", overwrite=False):
for k, v in from_cfg.items():
if k.startswith("#"):
continue

Check warning on line 212 in src/manage/config.py

View check run for this annotation

Codecov / codecov/patch

src/manage/config.py#L212

Added line #L212 was not covered by tests
try:
into = into_cfg[k]
except LookupError:
Expand Down
14 changes: 7 additions & 7 deletions src/manage/install_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -604,16 +604,16 @@
if not cmd.by_id:
for arg in cmd.args:
if arg.casefold() == "default".casefold():
LOGGER.debug("Replacing 'default' with '%s'", cmd.default_tag)
cmd.tags.append(tag_or_range(cmd.default_tag))
LOGGER.debug("Replacing 'default' with '%s'", cmd.default_install_tag)
cmd.tags.append(tag_or_range(cmd.default_install_tag))

Check warning on line 608 in src/manage/install_command.py

View check run for this annotation

Codecov / codecov/patch

src/manage/install_command.py#L607-L608

Added lines #L607 - L608 were not covered by tests
else:
try:
cmd.tags.append(tag_or_range(arg))
except ValueError as ex:
LOGGER.warn("%s", ex)

if not cmd.tags and cmd.automatic:
cmd.tags = [tag_or_range(cmd.default_tag)]
cmd.tags = [tag_or_range(cmd.default_install_tag)]

Check warning on line 616 in src/manage/install_command.py

View check run for this annotation

Codecov / codecov/patch

src/manage/install_command.py#L616

Added line #L616 was not covered by tests
else:
if cmd.from_script:
raise ArgumentError("Cannot use --by-id and --from-script together")
Expand All @@ -629,9 +629,9 @@
try:
tag = cmd.tags[0]
except IndexError:
if cmd.default_tag:
LOGGER.debug("No tags provided, installing default tag %s", cmd.default_tag)
tag = cmd.default_tag
if cmd.default_install_tag:
LOGGER.debug("No tags provided, installing default tag %s", cmd.default_install_tag)
tag = cmd.default_install_tag

Check warning on line 634 in src/manage/install_command.py

View check run for this annotation

Codecov / codecov/patch

src/manage/install_command.py#L633-L634

Added lines #L633 - L634 were not covered by tests
else:
LOGGER.debug("No tags provided, installing first runtime in feed")
tag = None
Expand Down Expand Up @@ -671,7 +671,7 @@
if spec:
cmd.tags.append(tag_or_range(spec))
else:
cmd.tags.append(tag_or_range(cmd.default_tag))
cmd.tags.append(tag_or_range(cmd.default_install_tag))

Check warning on line 674 in src/manage/install_command.py

View check run for this annotation

Codecov / codecov/patch

src/manage/install_command.py#L674

Added line #L674 was not covered by tests

if cmd.virtual_env:
LOGGER.debug("Clearing virtual_env setting to avoid conflicts during install.")
Expand Down
5 changes: 4 additions & 1 deletion src/pymanager.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
{
"install": {
"source": "%PYTHON_MANAGER_SOURCE_URL%",
"fallback_source": "./bundled/fallback-index.json"
"fallback_source": "./bundled/fallback-index.json",

"#": "Install 3.14 (prerelease) by default during prerelease PyManager",
"default_install_tag": "3-dev"
},
"list": {
"format": "%PYTHON_MANAGER_LIST_FORMAT%"
Expand Down