Compare commits
	
		
			No commits in common. "main" and "dual-column" have entirely different histories.
		
	
	
		
			main
			...
			dual-colum
		
	
		
							
								
								
									
										100
									
								
								README.md
								
								
								
								
							
							
						
						
									
										100
									
								
								README.md
								
								
								
								
							|  | @ -14,9 +14,9 @@ _Forge-agnostic software release tracker_ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| 
 | 
 | ||||||
| _This UI is Amolith's attempt at a balance between simple, pleasant, and | _This UI is Amolith's attempt at something simple and functional, yet still | ||||||
| functional. Amolith is not a UX professional and would **very** much welcome | friendly and pleasant. Amolith is not a UX professional and would **very** much | ||||||
| input from someone more knowledgeable!_ | welcome input from one!_ | ||||||
| 
 | 
 | ||||||
| ## What is it? | ## What is it? | ||||||
| 
 | 
 | ||||||
|  | @ -37,26 +37,18 @@ GitHub, GitLab, or [Forgejo] as well as more minimal options like [cgit] or | ||||||
| It exists because decentralisation, as wonderful as it is, does have some pain | It exists because decentralisation, as wonderful as it is, does have some pain | ||||||
| points. One piece of software is on GitHub, another piece is on GitLab, one on | points. One piece of software is on GitHub, another piece is on GitLab, one on | ||||||
| Bitbucket, a fourth on [SourceHut], a fifth on the developer's self-hosted | Bitbucket, a fourth on [SourceHut], a fifth on the developer's self-hosted | ||||||
| Forgejo instance. | Forgejo instance. The capabilities of each platform can differ as well, making | ||||||
|  | the problem even more difficult to solve. Forgejo and GitHub have RSS feeds that | ||||||
|  | notify you of releases as well as APIs. SourceHut has both an API and firehose | ||||||
|  | RSS feeds that notify you of _all_ activity in the repo. GitLab only has an API. | ||||||
|  | Some release announcements might be on the developer's personal blog. Sometimes | ||||||
|  | there's a CVE announcement prior to a release and those get published on a | ||||||
|  | different platform entirely. It's a mess to keep up with. | ||||||
| 
 | 
 | ||||||
| [SourceHut]: https://sourcehut.org/ | [SourceHut]: https://sourcehut.org/ | ||||||
| 
 | 
 | ||||||
| The capabilities of each platform can also differ, further complicating the | Willow brings some order to that mess by supporting both RSS and one of the | ||||||
| space. For example, Forgejo and GitHub have APIs and RSS release feeds, | _very_ few things all the forges have in common: their **V**ersion **C**ontrol | ||||||
| SourceHut has an API and RSS feeds that notify you of _all_ activity in the |  | ||||||
| repo, GitLab only has an API, and there's no standard for discovering the |  | ||||||
| capabilities of arbitrary git frontends like [legit]. |  | ||||||
| 
 |  | ||||||
| [legit]: https://github.com/icyphox/legit |  | ||||||
| 
 |  | ||||||
| And _then_ you have different pieces of information in different places; some |  | ||||||
| developers might publish release announcements on their personal blog and some |  | ||||||
| projects might release security advisories on an external platform prior to |  | ||||||
| publishing a release. |  | ||||||
| 
 |  | ||||||
| All this important info is scattered all over the internet. Willow brings some |  | ||||||
| order to that chaos by supporting both RSS and one of the _very_ few things all |  | ||||||
| the forges and frontends have in common: their **V**ersion **C**ontrol |  | ||||||
| **S**ystem. At the moment, [Git] is the _only_ supported VCS, but we're | **S**ystem. At the moment, [Git] is the _only_ supported VCS, but we're | ||||||
| definitely interested in adding support for [Pijul], [Fossil], [Mercurial], and | definitely interested in adding support for [Pijul], [Fossil], [Mercurial], and | ||||||
| potentially others. | potentially others. | ||||||
|  | @ -66,74 +58,40 @@ potentially others. | ||||||
| [Fossil]: https://www.fossil-scm.org/ | [Fossil]: https://www.fossil-scm.org/ | ||||||
| [Mercurial]: https://www.mercurial-scm.org/ | [Mercurial]: https://www.mercurial-scm.org/ | ||||||
| 
 | 
 | ||||||
| Amolith (the creator) has recorded some of his other ideas, thoughts, and plans | Amolith has recorded some of his other ideas, thoughts, and plans in [his wiki]. | ||||||
| in [his wiki]. |  | ||||||
| 
 | 
 | ||||||
| [his wiki]: https://wiki.secluded.site/hypha/willow | [his wiki]: https://wiki.secluded.site/hypha/willow | ||||||
| 
 | 
 | ||||||
| ## Installation and use | ## Installation and use | ||||||
| 
 | 
 | ||||||
| **Disclaimers:**  | _**Note:** prebuilt binaries will be available after we release [v0.0.1]_ | ||||||
| 1. Prebuilt binaries will be available with the [v0.0.1] release, greatly |  | ||||||
|    simplifying installation. |  | ||||||
| 2. We consider the project _alpha-quality_. There will be bugs. |  | ||||||
| 3. Amolith has tried to make the web UI accessible, but is unsure of its current |  | ||||||
|    usability. |  | ||||||
| 4. The app is not localised yet and English is the only available language. |  | ||||||
| 5. Help with any/all of the above is most welcome! |  | ||||||
| 
 | 
 | ||||||
| [v0.0.1]: https://todo.sr.ht/~amolith/willow?search=status%3Aopen%20label%3A%22v0.0.1%22 | [v0.0.1]: https://todo.sr.ht/~amolith/willow?search=status%3Aopen%20label%3A%22v0.0.1%22 | ||||||
| [communication platforms]: #contributing |  | ||||||
| 
 |  | ||||||
| ### Installation |  | ||||||
| 
 |  | ||||||
| This assumes Willow will run on an always-on server, like a VPS. |  | ||||||
| 
 |  | ||||||
| * Clone the repo with `git clone https://git.sr.ht/~amolith/willow` |  | ||||||
| * Enter the repo's folder with `cd willow` |  | ||||||
| * Build the binary with `CGO_ENABLED=0 go build -ldflags="-s -w" -o willow |  | ||||||
|   ./cmd` |  | ||||||
| * Transfer the binary to the server however you like |  | ||||||
| * Execute the binary with `./willow` |  | ||||||
| * Edit the config with `vim config.toml` |  | ||||||
| * Daemonise Willow using systemd or OpenRC or whatever you prefer |  | ||||||
| * Reverse-proxy the web UI (defaults to `localhost:1313`) with Caddy or NGINX or |  | ||||||
|   whatever you prefer |  | ||||||
| 
 |  | ||||||
| ### Use |  | ||||||
| 
 | 
 | ||||||
|  | * Clone the repo | ||||||
|  | * Build the binary with `CGO_ENABLED=0 go build -ldflags="-s -w" -o willow ./cmd` | ||||||
|  | * Upload it to a remote server | ||||||
|  | * Execute the binary | ||||||
|  | * Edit the `config.toml` | ||||||
| * Create a user with `./willow -a <username>` | * Create a user with `./willow -a <username>` | ||||||
| * Open the web UI (defaults to `localhost:1313`, but [installation] had you put | * Execute the binary again | ||||||
|   a proxy in front) | * Reverse proxy `http://localhost:1313` | ||||||
|  | * Open the web UI | ||||||
| * Click `Track new project` | * Click `Track new project` | ||||||
| * Fill out the form and press `Next` | * Fill out the form | ||||||
| * Indicate which version you're currently on and press `Track releases` | * Indicate which version you're currently on | ||||||
| * You're now tracking that project's releases! | * That's it! | ||||||
| 
 | 
 | ||||||
| [installation]: #installation | Note that we still consider the project to be in _alpha_ state. There _will_ be | ||||||
| 
 | bugs; please help fix them! | ||||||
| If you no longer use that project, click the `Delete?` link to remove it, and, |  | ||||||
| if applicable, Willow's copy of its repo. |  | ||||||
| 
 |  | ||||||
| If you're no longer running the version Willow says you've selected, click the |  | ||||||
| `Modify?` link to select a different version. |  | ||||||
| 
 |  | ||||||
| If there are projects where your selected version does _not_ match what Willow |  | ||||||
| thinks is latest, they'll show up at the top under the **Outdated projects** |  | ||||||
| heading and have a link at the bottom of the card to `View release notes`. |  | ||||||
| Clicking that link populates the right column with those release notes. |  | ||||||
| 
 |  | ||||||
| If there are projects where your selected version _does_ match what Willow |  | ||||||
| thinks is latest, they'll show up at the bottom under the **Up-to-date |  | ||||||
| projects** heading. |  | ||||||
| 
 | 
 | ||||||
| ## Contributing | ## Contributing | ||||||
| 
 | 
 | ||||||
| Contributions are very much welcome! Please take a look at the [ticket | Contributions are very much welcome! Please take a look at the [ticket | ||||||
| tracker][todo] and see if there's anything you're interested in working on. If | tracker][todo] and see if there's anything you're interested in working on. If | ||||||
| there's specific functionality you'd like to see implemented and it's not | there's specific functionality you'd like to see implemented and it's not | ||||||
| mentioned in the ticket tracker, please describe it through one of the platforms | mentioned in the ticket tracker, please send a description to the [mailing | ||||||
| below so we can discuss its inclusion. If we don't feel like it fits with | list][email] so we can discuss its inclusion. If we don't feel like it fits with | ||||||
| Willow's goals, you're encouraged to fork the project and make whatever changes | Willow's goals, you're encouraged to fork the project and make whatever changes | ||||||
| you like! | you like! | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ | ||||||
|             <input type="hidden" name="name" value="{{ .Name }}"> |             <input type="hidden" name="name" value="{{ .Name }}"> | ||||||
|             <input type="hidden" name="forge" value="{{ .Forge }}"> |             <input type="hidden" name="forge" value="{{ .Forge }}"> | ||||||
|             <input type="hidden" name="id" value="{{ .ID }}"> |             <input type="hidden" name="id" value="{{ .ID }}"> | ||||||
|             <input class="button" type="submit" formaction="/new" value="Track releases"> |             <input class="button" type="submit" formaction="/new" value="Track future releases"> | ||||||
|         </form> |         </form> | ||||||
|         <!-- Append these if they ever start limiting RSS entries: `(eq $forge "gitea") (eq $forge "forgejo")` --> |         <!-- Append these if they ever start limiting RSS entries: `(eq $forge "gitea") (eq $forge "forgejo")` --> | ||||||
|         {{- if or (eq $forge "github") -}} |         {{- if or (eq $forge "github") -}} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue