# Content: Lifecycle of Extensions ## Purpose Try to capture the stages that community extensions (Plugins and Themes) go through. **Status:** *This page has not been fully reviewed or decided upon.* ## Questions on the following... - Are the life-cycle stages correct? - Can we decide on how to represent each of the stages in the **structure** and content on the hub? - Example structure: - `Plugins/Unlisted Plugins` -> - `Plugins` -> - `Plugins/Archived Plugins` - Note: There is currently `Plugins/Unlisted` - which doesn't generalise for themes: `Themes/Unlisted` - Can we decide on how to represent each of the stages in the **content** on the hub? - Example content: - This plugin is **not yet published** in the community catalogue (???)-> - This plugin is available in the **community catalogue** (???)-> - This plugin is **archived** and likely no longer supported. - Once we know that, we can script something that at least initially detects and reports inconsistencies - and maybe later actually makes edits (to update structure and/or content) - And run that via GitHub Actions ## Plugins ### Life-cycle of a plugin Evolution of a plugin... - **Unlisted** - Does have a release in GitHub, so could be installed via BRAT - ~~Not yet in community plugins~~ Not submitted to the community plugins (and it might **never** be submitted). - **Beta** - Not yet in community plugins - but being tested - This is a difficult one - it requires manual tracking/intervention to know when a plugin enters this state. It might or not have a PR open to `obsidian-releases` - If we keep it as a lifecycle stage, suggest it's up to the plugin author to move it here - **Published** - Is currently in community plugins file - This means that `update-releases.py` will create/update a hub page for the plugin - Repo must not be archived not archived (but we don't check that currently) - **Archived** - Either: No longer listed in community plugins file - And/or: Plugin's GitHub repo is archived ### Plugins sources of truth - **community-plugins.json** - Currently used: - Whether the plugin is currently there - Various details like repo - Currently not used: - Whether the plugin has ever been listed there in the past, and has since been removed - **The plugin's GitHub** - Currently used: - Various details like author's name, description - Currently not used: - Whether there has ever been a release - Whether the repo is archived ### How the sources of truth are represented in the Hub - **Hub structure** - Whether the plugin has a note in `02.05 All Community Expansions/Plugins` - Whether the plugin is linked in the [[Plugins in Beta]] category - Whether the plugin is linked in the [[Unlisted plugins]] category - Whether the plugin has a note in the [[02 - Community Expansions/02.05 All Community Expansions/Plugins/Unlisted/🗂️ Unlisted|Unlisted plugins folder]] - Whether the plugin is linked in the [[Discontinued plugins]] category - Hub Content - Whether the plugin is listed in the 'Unlisted plugins' section of the author's note - e.g. [[SkepticMystic]] - Not represented in note content: - Whether the plugin is archived ## Themes I think the comments above apply equally well for themes. ## Scopes for inconsistency There are many... Here are a few. - Plugin gets published in obsidian-releases - no one notices to check whether to remove it from 'Unlisted plugins' - Unlisted plugins should only contain plugins that will **NOT** be included in the `obsidian-releases` repo - And many others %% Hub footer: Please don't edit anything below this line %% # This note in GitHub <span class="git-footer">[Edit In GitHub](https://github.dev/obsidian-community/obsidian-hub/blob/main/00%20-%20Contribute%20to%20the%20Obsidian%20Hub/03%20Contributor%20Notes/03.02%20Design%20Decisions/Content%20Lifecycle%20of%20Extensions.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/obsidian-community/obsidian-hub/main/00%20-%20Contribute%20to%20the%20Obsidian%20Hub/03%20Contributor%20Notes/03.02%20Design%20Decisions/Content%20Lifecycle%20of%20Extensions.md "git-hub-copy-note") | [Download this vault](https://github.com/obsidian-community/obsidian-hub/archive/refs/heads/main.zip "git-hub-download-vault") </span>