aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMichael Gattozzi <mgattozzi@gmail.com>2020-01-02 18:09:36 -0500
committerMichael Gattozzi <mgattozzi@gmail.com>2020-01-02 18:09:36 -0500
commit4ff48ec449f4ef297ee25511dc5633012e9d2639 (patch)
treef29b97c1b4afc53d9dc58106ccb2e1d9c6e3845f /README.md
parent92f24f534264d7cbb45ddd04bbb5a7ab714db4e3 (diff)
Add CHANGELOG and CONTRIBUTING and update README
This rounds out the documentation that was sorely needed before it could be tagged as v0.1. It includes instructions on usage, what has changed, and how to contribute all so that others can begin to contribute to the project and move it outside a personal one.
Diffstat (limited to 'README.md')
-rw-r--r--README.md184
1 files changed, 174 insertions, 10 deletions
diff --git a/README.md b/README.md
index b71ac62..47754d1 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,188 @@
# dev-suite
-dev-suite is a set of tools designed to redistribute distributed work
+dev-suite is a set of tools designed to redistribute distributed work. Our code
+has been locked into centralized services like GitHub and Gitlab. They provide
+nice things like an issue tracker and PRs as an integrated service. If we can
+put that into the git repo itself we'd be free to host our code wherever and
+have our code and it's project management share a common history rather than
+being locked into a service and divorcing the context of the important things
+that shape what code gets written.
-## Current Status
-Highly experimental and not for general use.
+Currently dev-suite has two tools:
+- Hooked, a git hooks manager to allow cross platform git hooks that can help
+ enable things like trunk based development and allow CI in a local
+ environment
+- Ticket, an on disk ticket manager and viewer to allow issues to live inside of
+ the repo and travel with it
+
+## Installation
+
+### Dependencies
+
+#### OSX
+- git
+
+#### Linux
+- git
+
+#### Windows
+- git for Windows installed to the default path for hooked to work
+
+#### Optional deps
+- Ruby
+- Python
+- Bash (included with git for Windows)
+
+Make sure you have these on your path somewhere for the git hooks to work
+properly in hooked
+
+### Recommended install method
+1. Grab a binary for the ds tool for your platform and place it somewhere on
+ your PATH
+ - [Windows](https://dev-suite-spaces.nyc3.digitaloceanspaces.com/windows/ds.exe)
+ - [Linux](https://dev-suite-spaces.nyc3.digitaloceanspaces.com/linux/ds)
+ - [OSX](https://dev-suite-spaces.nyc3.digitaloceanspaces.com/osx/ds)
+2. Run `ds install` which will install `ticket` and `hooked` to:
+ - Windows: `C:\\Users\YourUser\AppData\Local\dev-suite`
+ - Linux: `$XDG_BIN_HOME` or `$XDG_DATA_HOME/../bin` or `$HOME/.local/bin`
+ - OSX: `/usr/local/bin`
+ On Windows `ds install` will add the install path to your PATH with the `setx`
+ command. You might need to log out or restart your computer to see the
+ desired effect of not needing to type the path to the executable to run it.
+3. Run `ds config self init` to initialize a user config on the system. Failing
+ to do so will likely cause unexpected errors.
+
+### Manually compile
+In the event the above doesn't work for some reason or because of a bug (please
+file an issue and see CONTRIBUTING.md on how to do so) you can install these
+tools manually.
+
+1. Make sure you have the stable Rust compiler and Cargo installed we recommend
+ doing so via [rustup](https://rustup.rs/)
+2. Clone this repo
+3. `cd` into the repo
+4. `cargo install --path .`
+5. `cargo install --path hooked`
+6. `cargo install --path ticket`
+7. Run `ds config self init` to initialize a user config on the system. Failing
+ to do so will likely cause unexpected errors.
+
+## Usage
+
+### Initializing a repo to use dev-suite
+While each tool has it's own init command we recommend running `ds init` inside
+of a repo that you want to use these tools. You can choose the ones that you
+want to use from the command prompt and it will also initialize the repo with
+it's own repo config so this is probably the best way to do so.
+
+### ds
+
+`ds` is the main orchestration tool for setting things up with dev-suite. As
+this is not the main driver beyond setup it only has a few commands:
+
+```bash
+# Initialize a repo to use dev-suite and it's tools
+ds init
+
+# Install dev-suite's tools onto your computer
+ds install
+
+# Config commands for the user and repo
+
+## Create a dev-suite repo config in a repo
+ds config repo init
+
+## Add yourself as a maintainer to the repo config
+ds config repo add me
+
+## Pretty print the repo config to the terminal
+ds config repo show
+
+## Create a dev-suite user config for the system
+ds config user init "Display Name"
+
+## Pretty print the user config to the terminal
+ds config user show
+```
+
+## Hooked
+`hooked` is a dev-suite tool used to create git hooks for your repo to travel
+with it and to link them to `.git/hooks` on a fresh clone of it.
+
+```bash
+# Initialize a repo to use hooked if it was not initialized with it when using
+# `ds init`
+
+## Initialize the repo to use bash for git hooks
+hooked init bash
+
+## Initialize the repo to use ruby for git hooks
+hooked init ruby
+
+## Initialize the repo to use python for git hooks
+hooked init python
+
+# Link pre-existing dev-suite git hooks
+hooked link
+```
+
+## Ticket
+
+`ticket` is a dev-suite tool used to create, update, view, and manage
+tickets for your code base.
+
+```bash
+# Initialize a repo to use ticket if it was not initialized with it when using
+# `ds init`
+ticket init
+
+# Open up a new ticket
+ticket new
+
+# Close a ticket
+ticket close <TICKET-UUID>
+
+# Comment on a ticket
+ticket comment <TICKET-UUID> <MESSAGE>
+
+# Show a ticket on the commandline
+ticket show <TICKET-UUID>
+
+# Assign a ticket to yourself
+ticket assign <TICKET-UUID> to me
+
+# Assign a ticket to someone else
+ticket assign <TICKET-UUID> to them <USER-UUID> <NAME>
+
+# Migrate old versions of tickets to the newer versions this does nothing for now
+# unless you checkout the codebase from a pre v0.1 release
+ticket migrate
+
+# Open up the tui to look at tickets and comment on them
+ticket
+
+```
+
+## Contributing
+See CONTRIBUTING.md for more details
+
+## Changelog
+See CHANGELOG.md for more details
## Code of Conduct
The Code of Conduct is strictly enforced. See CODE_OF_CONDUCT.md for more
details.
-## PRs and Issues
-GitHub is a mirrored repo and all PRs and Issues will be closed. The point of
-these tools is to not depend on these things. This is merely to provide a public
-way to clone the source code. Currently this is mostly a private project. If you
-want to add issues or send a PR you can email me at `self@mgattozzi.dev`, but
-I doubt I will respond or accept changes currently
+## Opening PRs and Issues on public mirrors
+GitHub, Gitlab, and Bitbucket are mirrored repos and all PRs and Issues will be
+closed. The point of dev-suite is to not depend on the value add of these
+services. These mirror exist only to provide a public way to clone the source
+code.
## Blog Posts
- [Redistributing Distributed Work](https://blog.mgattozzi.dev/redistributing-distributed-work/)
## License
All code and contributions are licensed under the GNU Public License v3.0
-See LICENSE.md for more details.
+See LICENSE.md for more details. While this code does use the GPL we don't
+condone the actions of Richard Stallman or the FSF in it's protection of him.