| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up to this point hooked had been only designed to work on Windows, not
because dev-suite didn't want to support it, but because doing so was an
immense amount of work with no clear design due to how Unix and Window
paths are not at all the same. While shebang notation works on them for
both the paths are different.
In order to get around this we wrap Ruby, Python, and Bash scripts on
Windows with a different script that invokes the 'Git for Windows'
sh.exe to run the actual interpreters on the script. These can work fine
then as long as one has installed Git for Windows on their machine, and
has a copy of py.exe or ruby.exe on their path to be invoked.
There is one caveat. We have to assume that a user has installed their
copy of Git for Windows in the default location. This means if they
haven't the scripts will fail to run. There's not much we can do about
this and it's just a necessary wart to provide cross platform
capabilities for a project.
All projects can be initialized now with one of the language choices and
then have the proper files linked on their OS as part of the
initialization. Those who need to just link them in an already existing
project can just run `hooked link` in order to set their computer up.
This again handles the differences between the platforms. This project
is also updated to the new format of hooked so that collaboration is now
not limited to just Unix based OSes.
|
|
|
|
|
|
|
|
| |
One of the issues experienced on Windows with the tui for ticket was
that the thread handling events was panicking on close, but this was
only happening on Windows. For some reason it must not have been closing
down the spawned thread properly. To get around this we set up another
channel to send a message to close the thread down and avoid the panic.
|
|
|
|
|
|
| |
This adds the ability to install dev-suite from the command line and
simplifies the process of acquiring all of the tools and sets the
foundations to use ds more like rustup to manage dev-suite.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a fairly large overhaul of ticket but lays down the last bit of
groundwork needed before an initial release. It handles input to write
comments, refactors the code a bit to be cleaner and less computation
heavy, and also adds instructions on the bottom for how to use the tui.
This should be enough for people to start using it, though obviously
there's more work to go, but it feels more usable than before.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
While this had already been done with `src/actions.rs` before not
everything had been updated and new commands had been added since then
to the cli tool. This commit fixes things up quite a bit and simplifies
some of the code as a result.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit encompasses quite a few changes to add tickets:
- The `Ticket` struct is updated to properly order comments using a uuid
v1 and to hold the user name, uuid, and their comment
- Tickets in the repo are updated to accomodate this change to the
ticket. Despite this being a breaking config change, none of these
tickets had any comments so it was an easy manual port and the
migration tool did not need to be updated.
- The TUI was updated to display the tickets a bit better with some
coloring and now also showing the comments with them
This gets us one step closer to a decent first release for ticket. The
only things that are really left to do are adding the ability to comment
in the tui, listing tickets on the cli, and adding in issue assignees on
both the cli and tui.
|
| |
|
| |
|
|
|
|
|
| |
This commit utilizes configamajig to allow creating configs for a repo
and the user themselves as well as checking what those values are.
|
|
|
|
|
|
|
| |
Configuaration is important and overtime dev-suite will need more and
more of it. This commit adds the configamajig crate to handle these
configs and have it shared across tools that need access to them,
creating one API not several bits of glue code to read in files.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This commit really ups the level and quality of the Rust code by setting
clippy to pedantic mode. It also fixes an issue where bash continued to
run scripts even if something failed with a non-zero exit status. We
also deny all warnings so as to actually fail the builds and the commit
hooks. This should make sure code quality stays at a high level.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a necessary upgrade to deal with the fact that incremental ids
do not work in distributed systems. For instance say we have two
branches from the same commit on master and they both add a new ticket.
Both will have the same incremental ID despite being completely separate
tickets. In this case we want to use UUIDs, specifically version 1 as
defined in IETF RFC 4122. This version of UUID uses a timestamp to
generate it and as a result the UUID it generates is *sortable*. This
means that the UUIDs can be created whenever on any branch, be unique,
and will be sortable by time. No matter when or where our tickets can be
sorted correctly by this UUID in a deterministic order.
Since we are also upgrading the code we've set up migration upgrade code
to handle this in case we need to do this again in the future. We also
add a few more fields and make some breaking changes since we already
are for the UUIDs.
Resources:
- https://tools.ietf.org/html/rfc4122
|
| |
|
|
|
|
|
|
|
|
| |
This commit sets up a basic tui for the current functionality. It's
traversable by keyboard and by mouse and shows the ticket state via tab,
info in a row, and the description in it's own box when selected. This
is necessary for a good user experience for in repo tools. Files are
fine, but interactivity is better.
|
| |
|
|
|
|
|
|
|
|
| |
ticket used to just run without any kind of logging for commands that
weren't just printing tickets to the console or getting any kind of
information as to what was going on. This change adds logging with info
level for the end user by default, with debug and trace statements
while developing the code being an option via the RUST_LOG env var.
|
|
|
|
|
|
|
|
| |
We really should be logging what's going on as each of these tools run.
Before this change hooked just ran without any indication of what was
going on. This change adds logging with info level for the end user by
default, with debug and trace statements while developing the code being
an option as well.
|
|
|
|
|
|
|
|
|
|
| |
The dev-suite tool acts simmilar to rustup in that it's responsible for
keeping the tools up to date, installing the tools, and managing itself.
It also includes an init command to run all the various tools init
commands all at once. Of course we want what tools people use to be
configurable. dev-suite uses dialouger in order to provide a nice text
based menu for things like selecting what tools to use etc. Certain
functions are stubbed out for now, but they will be expanded over time.
|
|
|
|
|
|
| |
In the future a site with documentation and how to install the tool
will be needed. This sets up a skeleton of a static site using Hugo and
the kube theme. This will suffice for most needs for now.
|
|
|
|
|
|
|
|
|
| |
Up to this point testing of our command line tools just hasn't been
happening. That's not great. While locally testing things by hand is
possible, overtime various workflows will be harder to test by hand. By
automating these tests we can avoid regressions that we wouldn't think
to catch. Future work will involve working on adding tests for tools as
they integrate together.
|
|
|
|
|
|
|
|
|
| |
This adds a commit to handle git commit linting to enforce style by not
allowing less than 10 or more than 50 chars for titles and less than or
equal to 72 chars for the body. Chars are measured in number of
graphemes as 50 chars represented in the terminal is what we want to use
not 50 bytes. This will eventually be an installable hook for end users
if they want it.
|
| |
|
|
|
|
|
|
|
|
|
| |
This enables a pre-commit script and adding more pedantic checks to the
commit. This means from now on all commits will be in a working state in
the history and this enables us to build directly on master without
worrying about it breaking the build. Where we're going we won't need
feature branches anymore. This also fixes formatting issues that existed
but the GitHub actions would not be able to catch at all.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the hooked binary to the dev-suite repo as well as a stub for
a program to be used in this workflow! Hooked works by adding the hooks
into the repo and setting them to executable and linking them into the
hooks directory under .git. This means hooks get to travel with the
repo and are source controlled. All a dev needs to do is run the init
command and hooked will symlink them all for them. No need to remember
how ln works. It's all handled for you. Future work will iterate about
what hooks that dev-suite supplies as part of the script. This will
involve configuration files and per repo settings are something that
will need to be thought about.
Closes Issue #2
|
|
|
|
|
|
|
|
|
|
| |
This cleans up the init function using the modified find_root function
for ticket and moves it into a new shared crate so that other tools that
might be built can use it. This means we can easily find the root of
a git repo no matter where in the repo one is and build paths relative
to it.
Closes #3
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.19 to 1.0.22.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.19...1.0.22)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
|
|
|
|
|
|
| |
This adds the ability to open new tickets, close them, and show them
from the commandline. This functionality is enough to get started adding
more tickets to the repo from here on out and work on new tools with
tickets associated with them.
|
|
|
| |
* Setup CI for dev-suite
|
|
This commit initializes the repo with a stubbed out ticket tool and the
rustfmt preferences for the repo. The idea is that dev-suite will allow
remote collaboration by giving a lot of the functionality that GitHub
and other services have, but have all of the data live alongside the
repo and it's history. This makes choosing a different service easier
and lets people who don't want to use the service have that option.
|