a01f2b1512
--- type: change message: implement the ability for users without an account to still submit accredited commits change_hash: AIcRB2u380KAM345cCdexq3RzhDeEuDNT9gwcGDIj8xp credentials: - type: pgp_signature pub_key_id: 95C46FA6A41148AC body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6STloACgkQlcRvpqQRSKwMvg//c0JOUTlXNpDA8VSSUdPwHPrUJix223eMOi+SzP4RlCkEh8bHT24D3P1bpMacjgNpcmHGshAwtZkboTbvHNnqVu7HvOM2Vb/lrtkod/0sD4NsO2+GjJBNJmBtv9rEEz9wBGKKhjgZc5+h3d7UlmWHiLO++v2RnjEYd13Fj4/fOHnpAWrXVodtSEFVxUGup980Ug3uvC/vc8+a9w5llafqBMAnastQ/DyulPQeMTE2lxfyGvK1EhQSxbSokO61rgNssPFyfsmheA7T1FIrOzkXqNhIFsfRB4dAOBhhtoqRFEoJ755jK4XSlE5Y8klFuRVIfdnyBlrbia+Pc8u9KMoIBk0hDP+niFqUn9lEZS5D6X7PW/8DsaHa0rlHic9IB7nE563Fm1QVd5GSj7t3/0vPBetxdmXshLuTWtq+gSEJBH2DlC7AHw6gZkSr0w4d2HJlDivfP/cWuyrp0PrOAnEuKCRpnD+EBV5+wa+QlYYIAuTLMwF+/aT/G1VCtCSFkE5JWzZVw6J2oVq25deLpe1TMQ8dHevSlPx/UcofZasO7uFHLc3xDyC8ceK+pGuvRA2SSOIGo7+qR1xh2EhmQ2RZO1AN0NB4NYHQixYqWERen8SDe1jsSy6ercKTE5T/jJeHVPIOm1nutdP+D5gjQGU0JzcNoG/luJv02MWoD7J7RWU= account: mediocregopher
96 lines
3.5 KiB
Markdown
96 lines
3.5 KiB
Markdown
# Roadmap
|
|
|
|
This document describes currently planned features and events related to the
|
|
dehub project. It's intention is to help prioritize work. There are no dates
|
|
set, only a sequence of milestones and the requirements to hit them.
|
|
|
|
## Milestone: Publicize project
|
|
|
|
Must be able to feel good about showing the project publicly, as well as be able
|
|
to accept help from people asking to help.
|
|
|
|
* Fast-forward perms on branches (so they can be deleted)
|
|
* Figure out commit range syntax, use that everywhere.
|
|
* Create a branch which is just a public "welcome thread", which can be part of
|
|
the tutorials.
|
|
* Tutorials
|
|
* Update SPEC; it's sloppy, out-of-date, and incomplete.
|
|
* Maybe move external host?
|
|
|
|
## Milestone: IPFS support
|
|
|
|
* Big ol' question mark on this one.
|
|
|
|
## Milestone: Versions
|
|
|
|
* Tag commits
|
|
* Add dehub version to the SPEC, make binary aware of it
|
|
* Figure out a release system?
|
|
|
|
## Milestone: Checkpoints
|
|
|
|
* Ability to set change commits as being a "checkpoint", so that they mark a new
|
|
root commit. A couple of considerations:
|
|
- Only a checkpoint on the main branch should be considered when determining
|
|
the project "root".
|
|
- Must be a flag on change commits, to allow hard-forks of projects where
|
|
the config file is completely replaced.
|
|
- Not sure if it should be subject to ACL or not.
|
|
|
|
## Milestone: Minimal plugin support
|
|
|
|
* SPEC and implement. Things which should be pluggable, initially:
|
|
* Conditions
|
|
* Signifiers
|
|
* Filters
|
|
* Commits???
|
|
|
|
## Milestone: Minimal notifications support
|
|
|
|
* Some way to store notification settings locally, and run a command which shows
|
|
a sequence of events since the last time you ran it.
|
|
* The command should keep a history of all of its outputs, and allow the
|
|
user to see that history (in case they run the command, then clear the
|
|
output by accident).
|
|
* The user should be able to specifically get notifications on threads
|
|
they're a part of, threads by branch name pattern, files by path pattern,
|
|
and keywords in commit messages.
|
|
|
|
# Misc Polish
|
|
|
|
These tasks aren't necessarily scheduled for any particular milestone, but they
|
|
are things that could use doing anyway.
|
|
|
|
* Config validation. Every interface used by the config should have a
|
|
`Validate() error` method, and Config itself should as well.
|
|
|
|
* Maybe coalesce the `accessctl`, `fs`, and `sigcred` packages back into the
|
|
root "dehub" package.
|
|
|
|
* Polish all error messages. A good error message has the following qualities:
|
|
* If wrapping an error which was returned from a sub-call:
|
|
* Uses `fmt.Errorf` with the `%w` format directive at the end.
|
|
* Phrased as if the sentence starts with the word "while", e.g. "opening
|
|
file: %w".
|
|
* Only includes information the caller of that function/method couldn't
|
|
already know.
|
|
|
|
* Polish commands
|
|
* New flag system, some kind of interactivity support (e.g. user doesn't
|
|
specify required argument, give them a prompt on the CLI to input it
|
|
rather than an error). This is partially done, in that a new flag system
|
|
has been started. Needs further work.
|
|
|
|
* Review flags:
|
|
* probably make some of them into positional arguments
|
|
* add flag shortcuts
|
|
* document everything better.
|
|
|
|
* POSIX compatible-ish flags?
|
|
|
|
* Possibly save state locally in order to speed things along, such as
|
|
"account id" which probably isn't going to change often for a user.
|
|
|
|
* More/better tests
|
|
* Commits need much better test coverage.
|