Skip to content

Commit

Permalink
Merge pull request #410 from ogri-la/7.0.0
Browse files Browse the repository at this point in the history
* updated TODO, changelog, project.clj

* updated TODO

* updated TODO

* build-linux-image, changed jlink compress=2 to compress=1
this leads to shaving ~7MB off of final AppImage.
'2' means 'zip', which (I think) interferes with AppImage compression.

* project.clj, moves dev/test dependencies into :repl/:dev profiles.
moves 'test' from 'main' into repl/strongbox/user.clj.
core.clj, replaces bz2 compressed catalogue with a simple string. two reasons:
1. it wasn't working at compile time like I thought.
2. regular strings are more compressible ultimately when building an AppImage.

* user.clj, adds 'restart' back in

* project.clj, bumps most dependencies, moves dev.plugins under plugins

* jfx.clj, pushed some init calls into async startup.
moved 'set-icon' after core/refresh as it's taking a long time to do it's thing.

* core, download-strongbox-release now acquires a lock.
core, latest-strongbox-version? no longer attempts to download latest version.
core, latest-strongbox-release no longer recurses on failure, preferring one download attempt per session.

* review feedback

* updated CHANGELOG

* updated CHANGELOG

* addon folder size  (#395)

* addons, adds `:dirsize` to addon spec and new column to gui
* utils, adds a bytes formatter copied from clj-commons/humanize.
  LICENCE updated
* specs, :dirsize added to 'fat' profiles
* jfx, fixed case where sometimes the given bytes to formatter is nil
* addon, sums the total :dirsize for all grouped addons
* addon, if total :dirsize is 0, don't bother including field.
  nicer while testing.
* :dirsize during testing is now zero
* updates tests with new :dirsizes
* utils, with-lock, pulls wait time out of macro
  shortened wait duration during testing as it was often failing during CI
* review feedback
* updated CHANGELOG

* user-catalogue, adds star button to installed addons tab (#396)

* jfx, adds star column to installed-addon-pane.
* cli, moved column-map back into jfx. 
  it was unnecessary and ultimately more difficult to maintain.
* jfx, starring and unstarring from installed addons pane now works.
* jfx, star column styling fixed.
* jfx, added star column sorting.
* cli, core, adds logic to find an :addon/summary from an :addon/installed so it can be added to the user-catalogue.
* jfx, ignored addons cannot be starred.
* cli, error message after failing to add addon to user-catalogue is logged against addon.
* jfx, addons without a catalogue match cannot be starred.
* jfx, tweaks menu labels for installed addon columns.
* jfx, fat profile now includes star column.
* jfx, fat profile now uses the separate installed and available versions in favour of the combined installed+available version column.

* user-catalogue, improvements now that github has it's own catalogue (#397)

* cli, refresh-user-catalogue will only attempt an exhanustive lookup if addon not found in full catalogue.
  full catalogue includes the github catalogue these days.
* updated CHANGELOG

* search, add 'clear' button (#398)

* jfx, search pane, adds 'clear' button that resets search state.
* jfx, 'clear' button disabled when search not customised.
* cli, tweaks some log messages to remove redundant information
* jfx, search buttons are now a uniform height.
* jfx, removed border radius on search input button.

* user-catalogue scheduled refreshes (#399)

* core, adds 'scheduled-user-catalogue-refresh'
  if a catalogue is more than 28 days old, it will trigger an automatic refresh.
* cli, shifted a chunk of refresh-user-catalogue logic into core.
* config, adds preference 'keep-user-catalogue-updated'.
* jfx, adds 'keep user catalogue updated' toggle to preference menu
* updated CHANGELOG

* gui tweaks (#406)

* gui, fixed 'key' column on addon detail raw data was too small for text 'supported game tracks'.
* gui, fixed 'updated' column on installed addons was too small for '12 months ago'
* gui, switch to log tab when user catalogue is manually refreshed

* more stats (#403)

* core, adds a place to collect stats about app state
* core, adds github stats to :db-stats
* gui, replaces stats at bottom of pane with info from :db-stats.
* gui, split pane is now permanently there, which is much faster to toggle.
* gui, split pane now has 'sub-pane' content, defaulting to the notice-logger
* github-stats, fetched no more than once a minute
* db-stats, updated when state changes rather than on refresh
* db-stats, renamed the stats to use keyword namespaces to roughly group them
* http, changed expiry-offset-hours to expiry-offset-minutes
* http, prune cache now clears anything older than http/expiry-offset-minutes + 1
* utils, value formatting shifted out of jfx into utils
* jfx, status bar text switched to a label
* jfx, adds key-vals widget and the db-stats-widget that uses it
* jfx, the key-vals widgets now share the same styling
* jfx, the addon-detail key-vals widget uses the new key and value formatting fns

* utils, added space between bytes value and it's unit

* jfx, 'size' column is now right-aligned

* jfx, 'size' column moved to other side of table
it's now located after created and updated dates but before installed and available versions.
after right-aligning it seemed more at home there

* updated README

* updated README

* removes tukui support (#408)

* removes tukui support

* updated screenshots for v7 (#409)

* updated screenshots for v7

* 7.0.0

---------

Co-authored-by: Torkus <[email protected]>
  • Loading branch information
torkus and Torkus committed Jun 11, 2023
2 parents e1bb3d7 + c61dd2e commit efacfab
Show file tree
Hide file tree
Showing 50 changed files with 2,177 additions and 1,054 deletions.
72 changes: 72 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,78 @@ All notable changes to this project will be documented in this file. This change
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 7.0.0 - 2023-06-11

### Added

* added 'stats' that serves to centralise a bunch of numbers used internally that might be interesting to the user.
- see the `more stats` button in the bottom left corner.
* Github rate limit information is now fetched as part of the stats.
- but no more than once a minute.
- see: https://github.com/ogri-la/strongbox#user-content-github-api-authentication
* manually refreshing the user catalogue will now switch to the `log` pane before doing so.
- the intent is to show that *something* is happening.
- see: `Catalogue -> Refresh user catalogue`
* new (opt-in) preference to automaticaly refresh the user-catalogue every 28 days.
- the user-catalogue are addons added to strongbox using `File -> Import addon` or by 'starring' a regular addon.
- see: `Preferences -> Keep user catalogue updated`.
* added a "clear" button to the addons search that removes all search filters, including search terms.
* added new column for installed addons "starred" that will add an installed addon to the 'user-catalogue'.
- star button disabled when addon is being ignored or isn't matched against the catalogue.
* new column for installed addons "size" with the total size of the addon on disk, including any grouped addons.
- see: `View -> Columns -> size`
* `user.clj`, where the REPL will take you by default during development.
- this lets me separate some development dependencies and logic from what is released.

### Changed

* the main window is now always split with the bottom pane hidden by default.
- if can be dragged open or toggled open by either of the two status bar buttons.
* clicking the status bar buttons to open the bottom pane is now much quicker.
* refreshing the user-catalogue now checks imported/starred addons against the full catalogue before checking online.
- if it fails to find addon in catalogue, it will fall back to checking online like before.
- the user-catalogue was originally for imported addons without a catalogue (github, gitlab) but is now also for 'starred' addons. Refreshing it now that we have a Github catalogue is much faster.
* menu labels for the installed addons table columns have been tweaked (see `View -> Columns`)
- "installed" is now "installed version"
- "available" is now "available version"
- "version" is now "installed+available version"
- "WoW" is now "game version (WoW)"
* the "fat" column profile now uses the "installed" and "available" columns rather than the combined "version" column.
* the "fat" column profile includes the new "starred" and "size" columns.
- see: `View -> Columns -> fat`
* `jlink compress=2` changed to `jlink compress=1` during the building of the linux AppImage.
- `2` means "zip", which interferes with the final AppImage compression.
- this shaves off ~7MB from the final AppImage.
* replaced the compressed, static, "emergency" catalogue with a simple JSON string.
1. it wasn't working at compile time like I thought.
2. regular strings are more compressible ultimately when building an AppImage.
* bumped dependencies.
- removed `apache.commons.compressors` as no longer required.
* some dependencies used for development are no longer bundled during release.
* strongbox release data will only be downloaded once the app has finished loading.
* strongbox release data will only be downloaded once per-session.
- it would previously re-attempt to download the release data on failure endlessly.

### Fixed

* search tab filter buttons are now a uniform height.
* `key` column in the addon detail "raw data" widget is now wide enough for the text "supported game tracks".
* `updated` column in the installed addon tab is now wide enough for the text "12 months ago".
* possible cache stampede fetching strongbox release info. A lock is now acquired to ensure checks happen sequentially.
- it was possible for the GUI to fire off many requests to Github simultaneously, bypassing cache and overwriting each other.

### Removed

* Tukui support. Tukui addons are:
- no longer checked for updates.
- excluded from being imported.
- excluded from the user-catalogue.
- no longer scraped from the tukui.org API into a catalogue.
- no longer present in the "full" or "short" catalogues.
- excluded from search results.
- removed from the 'emergency' (built-in, hardcoded) catalogue (used when remote catalogues are unavailable).
- removed from lists of available addon hosts to switch an addon between.

## 6.1.2 - 2023-05-16

* issue #402, fixed a freezing bug in the search results, introduced in 5.1.0 (2022-03-02).
Expand Down
1 change: 1 addition & 0 deletions LICENCE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -688,3 +688,4 @@ Program grant you additional permission to convey the resulting work.
* cljfxcss
* clj-http-fake
* tolitius/lasync
* clj-commons/humanize
54 changes: 30 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,57 @@
# strongbox, a World of Warcraft addon manager

`strongbox` is an **open source**, **[advertisement free](#recognition)** and **[privacy respecting](#privacy)** addon manager for World of Warcraft.
`strongbox` is an **open source**, **[advertisement free](#recognition)** and **[privacy respecting](#privacy)** addon
manager for World of Warcraft.

It runs on Linux and macOS.

It supports addons hosted by ~Curseforge,~ wowinterface.com, Tukui, Github and Gitlab.
It supports addons hosted by ~Curseforge,~ wowinterface.com, ~Tukui~, Github and Gitlab.

---

***Notice***: tukui.org no longer hosts addons except `elvui` and `tukui` as of **2023-06-01**.

Unfortunately the location of these two addons has changed as well as details around their access.

I've dropped support for tukui.org in **7.0.0** and instead mirror [tukui](https://github.com/ogri-la/tukui) and
[elvui](https://github.com/ogri-la/elvui) releases on Github. This automatically includes them in the
[Github catalogue](https://github.com/ogri-la/strongbox-catalogue/blob/master/github-catalogue.json).

---

***Notice***: Curseforge addons no longer receive updates as of version **5.0.0**, released Feb 1st, 2022.

Use the *"Source"* and *"Find similar"* actions from the addon context menu ([added **4.9.0**](https://github.com/ogri-la/strongbox/releases)) to help migrate addons away from Curseforge.
Use the *"Source"* and *"Find similar"* actions from the addon context menu
([added **4.9.0**](https://github.com/ogri-la/strongbox/releases)) to help migrate addons away from Curseforge.

I also maintain a list of [other addon managers](https://ogri-la.github.io/wow-addon-managers/).

---

[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-installed-skinny-thumbnail.jpg)](./screenshots/screenshot-6.0.0-installed-skinny.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-installed-thumbnail.jpg)](./screenshots/screenshot-6.0.0-installed.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-installed-fat-thumbnail.jpg)](./screenshots/screenshot-6.0.0-installed-fat.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-detail-thumbnail.jpg)](./screenshots/screenshot-6.0.0-detail.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-installed-skinny-thumbnail.jpg)](./screenshots/screenshot-7.0.0-installed-skinny.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-installed-thumbnail.jpg)](./screenshots/screenshot-7.0.0-installed.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-installed-fat-thumbnail.jpg)](./screenshots/screenshot-7.0.0-installed-fat.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-detail-thumbnail.jpg)](./screenshots/screenshot-7.0.0-detail.png?raw=true)

[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-dark-installed-skinny-thumbnail.jpg)](./screenshots/screenshot-6.0.0-dark-installed-skinny.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-dark-installed-thumbnail.jpg)](./screenshots/screenshot-6.0.0-dark-installed.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-dark-installed-fat-thumbnail.jpg)](./screenshots/screenshot-6.0.0-dark-installed-fat.png?raw=true)
[![strongbox version 6.0.0](./screenshots/screenshot-6.0.0-dark-detail-thumbnail.jpg)](./screenshots/screenshot-6.0.0-dark-detail.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-dark-installed-skinny-thumbnail.jpg)](./screenshots/screenshot-7.0.0-dark-installed-skinny.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-dark-installed-thumbnail.jpg)](./screenshots/screenshot-7.0.0-dark-installed.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-dark-installed-fat-thumbnail.jpg)](./screenshots/screenshot-7.0.0-dark-installed-fat.png?raw=true)
[![strongbox version 7.0.0](./screenshots/screenshot-7.0.0-dark-detail-thumbnail.jpg)](./screenshots/screenshot-7.0.0-dark-detail.png?raw=true)

## Installation

Arch Linux users can install `strongbox` from the [AUR](https://aur.archlinux.org/packages/strongbox/) ([mirror](https://github.com/ogri-la/strongbox-pkgbuild/)).

For other Linux users:

1. download: [./releases/strongbox](https://github.com/ogri-la/strongbox/releases/download/6.1.2/strongbox)
1. download: [./releases/strongbox](https://github.com/ogri-la/strongbox/releases/download/7.0.0/strongbox)
2. make executable: `chmod +x strongbox`
3. run: `./strongbox`

If you're on macOS or having a problem with the binary or just prefer Java `.jar` files (requires Java 11+):

1. download: [./releases/strongbox-6.1.2-standalone.jar](https://github.com/ogri-la/strongbox/releases/download/6.1.2/strongbox-6.1.2-standalone.jar)
2. run: `java -jar strongbox-6.1.2-standalone.jar`
1. download: [./releases/strongbox-7.0.0-standalone.jar](https://github.com/ogri-la/strongbox/releases/download/7.0.0/strongbox-7.0.0-standalone.jar)
2. run: `java -jar strongbox-7.0.0-standalone.jar`

## Usage

Expand Down Expand Up @@ -68,7 +80,7 @@ Afterwards, use the `Update all` button to update all addons with new versions a
* [install addons from multiple sources](#install-addons-from-multiple-sources):
- ~Curseforge~
- wowinterface.com
- Tukui
- ~Tukui~
- Github (using *releases*)
- Gitlab (using *releases*)
* [import and export lists of addons](#import-and-export-lists-of-addons)
Expand Down Expand Up @@ -107,9 +119,7 @@ that it's my privilege to offer this small piece back.

This software interacts with the following remote hosts:

* ~Overwolf/Twitch/Curseforge [Addons API](https://addons-ecs.forgesvc.net/) and its [CDN](https://edge.forgecdn.net/)~
* [wowinterface.com](https://wowinterface.com)
* [www.tukui.org](https://www.tukui.org/api.php)
* [api.github.com](https://developer.github.com/v3/repos/releases)
- to download repository and release data for addons hosted on Github
- to download the latest `strongbox` release information
Expand Down Expand Up @@ -148,7 +158,8 @@ bug. *Some* of the details it contains are:

### classic and retail addon support

"Classic", "Classic (The Burning Crusade)", "Classic (Wrath of the Lich King)" and "Retail" versions of WoW are all distinct addon systems.
"Classic", "Classic (The Burning Crusade)", "Classic (Wrath of the Lich King)" and "Retail" versions of WoW are all
distinct addon systems.

Some addons support all systems in a single download, some support classic as an alternate build of the same addon,
some addons support classic only, some addons have been split up into multiple addons. There is a lot of variation.
Expand Down Expand Up @@ -182,9 +193,7 @@ Click `File` from the top menu and select `Import addon` and paste the URL of th

Strongbox supports searching for addons from the following addon hosts:

* ~[Curseforge](https://www.curseforge.com/wow/addons)~
* [wowinterface.com](https://wowinterface.com/addons.php)
* [Tukui](https://www.tukui.org)
* [Github](https://github.com)

Click the `search` tab and start typing.
Expand Down Expand Up @@ -224,9 +233,7 @@ Click the `Update all` button next to your addon directory.

Strongbox supports installing addons from the following addon hosts:

* ~[Curseforge](https://www.curseforge.com/wow/addons)~
* [wowinterface.com](https://wowinterface.com/addons.php)
* [Tukui](https://www.tukui.org)
* [Github](https://www.github.com)
* [Gitlab](https://gitlab.com)

Expand Down Expand Up @@ -313,7 +320,6 @@ Right-click an addon and select `Release`.

Strongbox currently supports installing previous releases for:

* ~Curseforge~
* Github
* Gitlab

Expand Down Expand Up @@ -394,6 +400,6 @@ Prior to `1.0.0`, `strongbox` was known as `wowman`. The [AUR package](https://a

## License

Copyright © 2018-2022 Torkus
Copyright © 2018-2023 Torkus

Distributed under the GNU Affero General Public Licence, version 3 [with additional permissions](LICENCE.txt#L665)
5 changes: 3 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ All other major versions are unsupported.

| Version | Supported |
| ------- | ------------------ |
| 6.x.x | :heavy_check_mark: |
| 5.x.x | :heavy_minus_sign: |
| 7.x.x | :heavy_check_mark: |
| 6.x.x | :heavy_minus_sign: |
| 5.x.x | :x: |
| 4.x.x | :x: |
| 3.x.x | :x: |
| 2.x.x | :x: |
Expand Down
Loading

0 comments on commit efacfab

Please sign in to comment.