Skip to content

Enhanced plugin manager with separate plugin and OS sections#123

Merged
limetech merged 5 commits into
unraid:6.4-wipfrom
bergware:6.4-wip
Jun 18, 2017
Merged

Enhanced plugin manager with separate plugin and OS sections#123
limetech merged 5 commits into
unraid:6.4-wipfrom
bergware:6.4-wip

Conversation

@bergware
Copy link
Copy Markdown
Contributor

No description provided.

@bergware
Copy link
Copy Markdown
Contributor Author

bergware commented Jun 18, 2017

My first "assignment" :)
This enhances the plugin manager with the following:

  • Original plugins page will only show user (custom) plugins
  • Upon entering the plugins page an auto-check is performed (no more 'Check for Updates')
  • A new page "Update OS" is available under Tools -> About and shows system updates (unRAIDServer and dynamix)
  • Also new page has auto-check functionality, so status is always up-to-date
  • It is possible to switch between Stable and Next releases
  • System updates are made VERY visible to the user (no way to overlook them)
  • Addition to plugin script to allow "forced" installation. This is needed when switching between next and stable releases
  • No longer separate messages about dynamix plugin updates
  • That's about it ...
  • Have not added yet separate OS notification schedule

@bergware
Copy link
Copy Markdown
Contributor Author

Fun fact: while working on the plugin manager, suddenly it was telling me a new version 'rc4' was available. Proof the auto-check works nice :)

@limetech
Copy link
Copy Markdown
Contributor

One thing that concerns me with "auto" checking for updates is the effect this might have on servers which have no connectivity to the internet. Will this auto-check cause the page to 'hang' for a long time, waiting for a connection which will never complete? If not, no worries.

@bergware
Copy link
Copy Markdown
Contributor Author

bergware commented Jun 18, 2017

There will be a longer waiting time when the github server isn't responding.
A unRAID server without internet will get almost instant no-reply, actually faster than the regular response.
When no communication could be established a "Retry" button is shown and all plugins are set to "no update".

Please make tests, any improvement/feedback is welcome.

One advantage of auto-check is that info is always up-to-date, especially when version updates are made in short succession.

@limetech limetech merged commit 90887cb into unraid:6.4-wip Jun 18, 2017
elibosley added a commit that referenced this pull request May 22, 2026
Purpose of the change:
- Address review feedback on the WebGUI Linear release workflow while keeping the patch minimal.

Previous behavior:
- The workflow used the mutable actions/checkout@v6 tag.
- Tags without a previous semver tag used RANGE_SPEC equal to the tag name, causing git log to walk full ancestry.
- PR metadata collection only recognized merge commits shaped as Merge pull request #123.

Why that was a problem:
- Mutable action tags can be retargeted upstream.
- A first-tag release could scan unrelated historical commits and attach unrelated Linear metadata.
- Squash-merged PRs with commit messages like Fix thing (#123) would not have their PR body scanned for Linear or FeatureOS links.

What this changes:
- Pins actions/checkout to the current v6.0.2 commit SHA.
- Uses TAG^..TAG for first-tag ranges when a parent exists, with the old tag fallback only for parentless commits.
- Extends PR number extraction to include squash-merge (#123) patterns while preserving numeric extraction, sorting, and dedupe.

How it works:
- The existing PR lookup loop remains unchanged; it receives a broader but still numeric-only PR number list.
- The git range emitted by Resolve tag remains bounded before the later git log call uses it.
elibosley added a commit that referenced this pull request May 22, 2026
Purpose of the change:
- Address review feedback on the WebGUI Linear release workflow PR parsing.

Previous behavior:
- PR number extraction matched both explicit merge commits and any parenthetical number shaped like (#123).

Why that was a problem:
- Ordinary issue references in commit messages could be treated as PR numbers and sent to the GitHub pulls API, causing the workflow to fail.

What this changes:
- Restricts PR number extraction to explicit Merge pull request #123 commit messages.
- Keeps the existing numeric extraction, sort -u dedupe, and || true fallback behavior.

How it works:
- The first grep now emits only Merge pull request #[0-9]+ matches before the second grep extracts digits for the existing curl loop.
elibosley added a commit that referenced this pull request May 22, 2026
## Summary

- Pins `actions/checkout` to the immutable commit currently referenced
by `v6.0.2`.
- Bounds the no-previous-tag path to `TAG^..TAG` when possible so the
workflow does not scan full tag ancestry.
- Restricts PR number extraction to explicit merge commit messages like
`Merge pull request #123`, avoiding accidental issue references like
`(#123)`.
- Adds Linear-side GitHub PR link resolution: discovered PR URLs are
passed to the sync script, which resolves Linear attachments for those
URLs and attaches the linked issues to the release.
- Fixes manual `workflow_dispatch` testing against historical tags by
checking out the workflow branch while still resolving the requested
`tag_name`.
- Carries active QA work across OS prereleases: internal tag sync now
attaches active issues to the exact prerelease, the stable companion
release, and the next planned prerelease. It removes next-prerelease
membership only after the issue reaches an internal/completed state.
- Sweeps existing issues already attached to the exact prerelease
through the same policy, so tickets are carried forward even when they
were not mentioned by the latest WebGUI tag diff.

## Review Notes

- Valid: mutable checkout tag. Fixed by pinning to
`de0fac2e4500dabe0009e67214ff5f5447ce83dd`.
- Valid: empty `PREVIOUS_TAG` range walked too much history. Fixed with
parent-bounded range and a parentless fallback.
- Valid: broad parenthetical PR extraction could treat issue references
as PR numbers. Fixed by restricting extraction to `Merge pull request
#[0-9]+` while preserving numeric extraction, `sort -u`, and `|| true`
behavior.
- Follow-up support: if the GitHub PR only links to Linear from the
Linear side, `attachmentsForURL` now resolves the issue from the PR URL.
- Manual test finding: checking out `tag_name` during
`workflow_dispatch` failed for historical tags because the tag did not
contain the new script. Fixed by checking out `github.ref` for manual
runs.
- Skipped: none. All reported findings applied to the current code.

## Validation

- `git diff --check`
- `node --check .github/scripts/sync-linear-release.mjs`
- `ruby -e 'require "yaml";
YAML.load_file(".github/workflows/linear-release.yml"); puts "yaml ok"'`
- Shell probe confirmed PR extraction returns `2645` from `Merge pull
request #2645 ...` and ignores parenthetical `(#2646)` / `(#123)`
references.
- Shell probe confirmed the first-tag fallback uses a single-commit
style range such as `6.2.2^..6.2.2` when a parent exists.
- Live Linear validation:
`attachmentsForURL(https://github.com/unraid/webgui/pull/2645)` resolved
`OS-239`, and the sync script attached `OS-239` to `7.3.1-rc.0.3`
without changing its `QA Ready` state.
- Manual workflow test passed:
https://github.com/unraid/webgui/actions/runs/26299583415 for
`tag_name=7.3.1-rc.0.3`; it synced the existing Linear Release and
attached `OS-239` idempotently.
- Local Linear validation after carry-forward change: `OS-239` is `QA
Ready` and attached to `7.3.1-rc.0.3`, `7.3.1-rc.0.4`, and `Unraid OS
7.3.1 Stable`.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Chores
* Improved release automation and synchronization between GitHub PRs and
Linear issues, ensuring PR links are properly captured and tracked
throughout the release cycle
* Strengthened issue state management across multiple release versions,
providing better visibility into which changes are included in each
release
* Enhanced overall reliability of the release workflow

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/unraid/webgui/pull/2647?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to 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.

2 participants