Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); fix: Pull platform-specific container images by default by Sunsvea · Pull Request #455 · apple/container · GitHub
Skip to content

fix: Pull platform-specific container images by default - #455

Open
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default
Open

fix: Pull platform-specific container images by default#455
Sunsvea wants to merge 2 commits into
apple:mainfrom
Sunsvea:fix/pull-platform-specific-by-default

Conversation

@Sunsvea

Copy link
Copy Markdown

This change addresses issue #83 by modifying the default behavior of container images pull to automatically select the current platform when no --platform flag is specified.

This reduces bandwidth consumption by up to ~95% (from ~8GB to ~350MB for multi-platform images like python).

What changed

  • Modified ImagePull.swift to default to Platform.current instead of pulling all platforms
  • Added test coverage with testPullDefaultPlatform()
  • Maintains backward compatibility with --platform flag

Why this change

Users reported excessive bandwidth usage when pulling container images, as the default behavior downloads all available platforms. This particularly impacts users on limited connections and increases registry load unnecessarily.

Testing

  • New test confirms single-platform pulling behavior
  • Manual tests show bandwidth reduction from ~8GB to ~350MB for multi-arch images
  • Backward compatibility verified with --platform flag

Impact

  • Faster pull times for end users
  • Reduced load on container registries
  • Zero breaking changes to existing workflows

- Change ImagePull CLI to default to Platform.current when no --platform specified
- Reduces downloads from ~8GB to ~350MB for multi-arch images
- Maintains backward compatibility with explicit --platform flag
- Add test to verify default platform behavior
- Use busybox instead of alpine to avoid cache conflicts with other tests
- Test now properly verifies single-platform pulling behavior
@dcantah

Copy link
Copy Markdown
Contributor

cc @adityaramani as this behavior was chosen for a reason

@adityaramani

adityaramani commented Aug 6, 2025

Copy link
Copy Markdown
Contributor

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

  • Change the default for pull / push commands to be the current platform (you have done this for pull)
  • Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a --all-platforms flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@Sunsvea

Sunsvea commented Aug 7, 2025

Copy link
Copy Markdown
Author

The reason for pulling (and pushing) all platforms by default is that - if a user decided to do something like the following, and foo is a multi platform image

container image pull foo
container image tag foo bar
container image push bar

We should be keeping the sha of the index the same for the image we are pushing out, which would mean that we have to push out all the layers / sub-layers referenced in the index, which would include all the platforms. And to do that, we need to have all the layers present on disk

That being said - we have quite a few issues around the same area, and are open to changing the default behavior to work with only the current platform.

The changes required for this would be

* Change the default for pull / push commands to be the current platform (you have done this for pull)
* Add in a flag / a way for the user to specify that they want to pull / push all platforms. Maybe a `--all-platforms` flag?

Im not sure if we should have a different default for pull (current platform only) vs push (all platforms), but if we do we'd need some error handling and think about the UX

@adityaramani I admit I like the sound of a 'smart' push workflow that cares about the local image state (i.e. push all platforms if local image has multiple platforms) but I feel it would introduce too much ambiguity.

I would lean toward a coherent workflow for both push/pull such as:

  1. pull current platform by default
  2. push current platform by default
  3. use --all-platforms for both when doing multi-arch workflows
  4. likewise use --platform=arm64 when pulling or pushing to specific platforms.

Lastly, this would mean that we're updating the default behavior for push/pull. We'd need to consider how we'll communicate the change to anyone who's currently using this tool...

I'd be keen to hear some feedback from others.

@bennettp123

Copy link
Copy Markdown

Another option might be to allow people to opt in (or out) of the new behaviour using something like

defaults write com.apple.container.defaults push.platforms <platforms>
defaults write com.apple.container.defaults pull.platforms <platforms>

@Mcrich23

Mcrich23 commented Sep 19, 2025

Copy link
Copy Markdown
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Sign up for freeto 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.

6 participants

@Sunsvea@dcantah@adityaramani@bennettp123@Mcrich23@adeebashraf