Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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" + '
[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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('^' + ".*" + ' [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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('^' + ".*" + ' [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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" + ' [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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('^' + ".*" + ' [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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('^' + ".*" + ' [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite
, '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); } })(); })(); [5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable by jesseleite · Pull Request #11064 · statamic/cms · GitHub
Skip to content

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable - #11064

Merged
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons
Dec 2, 2024
Merged

[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatable#11064
jesseleite merged 8 commits into
starter-kit-export-package-folderfrom
starter-kit-addons

Conversation

@jesseleite

@jesseleitejesseleite commented Nov 6, 2024

Copy link
Copy Markdown
Contributor

Note: This PR does NOT make everything in a starter kit magically updatable; It merely adds the ABILITY for a starter kit developer to architect their kit in such a way that parts of a kit be composer updatable!

The Problem

Currently, starter kits are installed via composer, and they uninstall themselves at the end of the install process, giving full ownership of to the end user of all installed files. This is very intentional for things like simple 'theme' kits, where there's no reason for templates and styles to live on in the user's composer.json or vendor directory.

If a starter kit dev wishes to push updatable bits to users, they have to package up those updatable bits into a separate package/addon, and include in their starter kit's dependencies config. Again, this is also very intentional, but it now means the starter kit dev has to maintain two separate repositories for one 'kit', which complicates starter kit development.

The Proposition

The idea of this PR is to allow starter kits to remain installed as living composer-updatable packages. If the kit dev intends to push updates to their users, they can simply add updatable: true to their starter-kit.yaml config, and the starter kit repository will remain in their composer.json and vendor directory after a successful install.

This allows the end user to...

  • composer update for bugfixes
  • php please starter-kit:module-install newly added modules (this command coming soon)
  • use any package/addon features the starter kit devs wires up
  • etc.

And allows the starter kit dev to...

  • push updates to the end user
  • leverage any package/addon features they wish to wire up
  • all within one easier to maintain repo

Todo

@jesseleitejesseleite changed the title Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to live on as addons via opt-in configNov 6, 2024
@jackmcdadejackmcdade changed the title [5.x] Allow starter kits to live on as addons via opt-in config[5.x] Allow starter kits to be updatable with composer via opt-in configNov 6, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch November 6, 2024 18:12
@jesseleite
jesseleite restored the starter-kit-addons branch November 6, 2024 18:13
@jesseleitejesseleite reopened this Nov 6, 2024
@jesseleite
jesseleite marked this pull request as ready for review November 11, 2024 15:29
@jesseleitejesseleite changed the title [5.x] Allow starter kits to be updatable with composer via opt-in config[5.x] Give starter kit devs an opt-in config to help make parts of their kits composer updatableNov 11, 2024
@jesseleite
jesseleite changed the base branch from 5.x to starter-kit-export-package-folderDecember 2, 2024 21:17
@jesseleite
jesseleite merged commit 0cc5cba into starter-kit-export-package-folderDec 2, 2024
@jesseleite
jesseleite deleted the starter-kit-addons branch December 2, 2024 21:18
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.

1 participant

@jesseleite