Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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" + '
Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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('^' + ".*" + ' Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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('^' + ".*" + ' Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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" + ' Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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('^' + ".*" + ' Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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('^' + ".*" + ' Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally

, '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); } })(); })(); Dev: Guidelines · LuaDist/Repository Wiki · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Dev: Guidelines

Bob Liu edited this page Nov 29, 2015 · 15 revisions

Repositories

Source code repositories of existing projects are imported into LuaDist as follows:

All LuaDist repositories should follow these simple rules.

  • Tags should always follow the version in dist.info.
    • If tag already exists for add an incremental "-1" "-2" .. "-n" suffix to the version tag, re-tagging is ok.
    • Delete tags not pointing to LuaDist release. Use version number as in dist.info without "v" prefix.
      • Do not tag development versions. LuaDist provides "scm" modules that always point to "master".
      • NOTE: Always pull from other repositories with --no-tags to avoid pulling in unwanted tags
  • Master branch should always point to most recent package source version.
  • Binaries are committed into orphan branches that follow Arch-type name convention.
  • All new modifications should be developed in branches other than master.
    • Recommended branch names are "packagename-version" or "feature name"
    • If possible develop in cloned repository and push everything once done or submit pull request.

LuaDist/Repository

Primary repository that aggregates all module sub-repositories in the distribution. The purpose of this repository is to ease development and act as a package manifest for the deployment utility. While working with this repository keep the following in mind:

  • ! All Development issues go here.
    • Issues in other repositories are discouraged.
  • Submodules DO NOT point to master.
    • When working with a repository always check your branch, you may loose your changes.
    • Make sure the repository is up to date.
    • All submodules have to be added using the git:// protocol
  • If you update master branch of any module make sure LuaDist/Repository points to it.

Workflow

The following section will describe recommended workflow for LuaDist development. This includes setup of the environment. Utilization of the Repository and some connivence settings for the LuaDist utility.

Step 1. Checkout and work in LuaDist/Repository only.

$ # Checkout the work repository 
$ git clone git://github.com/LuaDist/Repository.git
$ cd Repository

Step 2. Bootstrap LuaDist from Repository

$ # You can check out any submodule you want to work on in the same manner
$ git submodule update --init bootstrap
$ cd bootstrap && git submodule update --init
$ cd ..
$ # Make sure LUA_CPATH and LUA_PATH is not used
$ unset LUA_CPATH &&unset LUA_PATH
$ # Build
$ ./install bootstrap
$ cd _install
$ bin/luadist

Step 3. New modules

To add a new module first create the repository on github and then add a submodule to Repository as follows:

$ # NOTE: Add READ ONLY URLs so this repository can be checked out by anyone
$ git submodule add git://github.com/LuaDist/module.git
$ cd module

Step 4. Compilation and Development

Once you are done with your work you can install the module using LuaDist into a test folder:

$ cd my_project
$ LuaDist/bin/luadist _test make -verbose -debug

This will also look for any dependencies the package has.

Step 5. Publishing the module

When you are done developing you need to push the work into the module repository and update Repository and its manifest.

$ # Since the repository is readonly we need to change the push path, this will do it for all submodules
$ git submodule foreach 'git remote set-url --push origin git@github.com:LuaDist/$path.git'
$ cd module
$ # Add your work
$ git add ...
$ # Commit locally
$ git commit -a -m "Commit message"
$ # Add version tag if needed
$ git tag 0.1
$ # publish
$ git push
$ git push --tags

Step 6. Updating Repository

Once this is done we need to push Repository changes so that the module can be found by the luadist utility. This only needs to be done once when the new module is added. For module updates you do not need to update the Repository.

$ # Commit and publish
$ git commit .gitmodules module_name -m "Added module XXX"
$ git push

Check install from online source

$ LuaDist/bin/luadist _test install module -verbose

Hopefully all goes ok. Have fun developing.

Clone this wiki locally