1. 06 Jan, 2020 3 commits
    • Michael Gattozzi's avatar
    • Michael Gattozzi's avatar
      Fix the ticket tui so it does not panic · 7dfa1b8d
      Michael Gattozzi authored
      The tui for ticket uses indexing in order to have quicker unchecked
      access into data structures for the data needed that gets displayed in
      the tui. However, you can't index empty data. We add a check for this in
      places that expect data to exist so that nothing will cause a panic. We
      also add fixes to handle the fact that you can't divide by zero in our
      index modifying logic when pressing the left/right/up/down arrow keys.
      With this the tui shouldn't panic anymore and can work in an empty
      Closes: 4c37e800-2e38-11ea-b6e0-32f54a3ad7cd 'Having no tickets causes
      the TUI to crash'
    • Michael Gattozzi's avatar
      Create a panic handler for ticket tui · 03238ddf
      Michael Gattozzi authored
      In ticket 9b344c00-2e3d-11ea-bc2d-b4e1317c6ecc 'Create a panic handler
      for ticket tui' it became clear that ticket needed it's own way to
      handle panics since crashing the tui without cleaning up after itself
      leaves the terminal in a completely garbled state. This commit now
      has the tui clean up properly after itself then run the normal hook
      which means it panics like any other Rust program and can get a
      backtrace with the panic as usual with RUST_BACKTRACE=1
  2. 04 Jan, 2020 2 commits
  3. 03 Jan, 2020 3 commits
  4. 02 Jan, 2020 8 commits
    • Michael Gattozzi's avatar
      Fix md formatting in CHANGELOG · 9677ee14
      Michael Gattozzi authored
    • Michael Gattozzi's avatar
      Add CHANGELOG and CONTRIBUTING and update README · 4ff48ec4
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Fix init logic for `ds init` · 92f24f53
      Michael Gattozzi authored
      Since the interface for `hooked init` changed to also make a language
      choice we need to allow the user to select the language when doing `ds
      init`. We also have ticket print out it ran successfully on
      initialization now. This was an oversight from an earlier refactor.
    • Michael Gattozzi's avatar
      Cleanup ds install and format hooked properly · f768dacb
      Michael Gattozzi authored
      This cleans up the ds install command to use namespaced folders on
      digital ocean to hold assets. This will make it easier to install things
      in the future if we break it down by version, but really it just makes
      it easier to not have to do weird splitting logic to choose the right
      tool and download and install it. For some reason hooked was also not
      formatted properly when rustfmt was run on OSX so this was fixed to
      make the build not break.
    • Michael Gattozzi's avatar
    • Michael Gattozzi's avatar
      Make hooked and dev-suite git hooks cross platform · 86efa907
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Change ticket tui to fix thread panic on Windows · ed345b65
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Add the ability to install dev-suite to ds tool · 655c52bf
      Michael Gattozzi authored
      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.
  5. 24 Dec, 2019 1 commit
  6. 23 Dec, 2019 1 commit
  7. 21 Dec, 2019 1 commit
    • Michael Gattozzi's avatar
      Upgrade tui to allow commenting from it · 50badce3
      Michael Gattozzi authored
      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.
  8. 19 Dec, 2019 3 commits
  9. 13 Dec, 2019 3 commits
    • Michael Gattozzi's avatar
      Refactor ticket to use common methods · 8161a574
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Add the ability to add comments to tickets · b32b1478
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
  10. 12 Dec, 2019 3 commits
  11. 11 Dec, 2019 2 commits
  12. 10 Dec, 2019 2 commits
  13. 03 Dec, 2019 1 commit
    • Michael Gattozzi's avatar
      Upgrade ticket format from V0 to V1 to use UUIDs · fcd4ccbe
      Michael Gattozzi authored
      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.
      - https://tools.ietf.org/html/rfc4122
  14. 02 Dec, 2019 3 commits
  15. 26 Nov, 2019 4 commits
    • Michael Gattozzi's avatar
      Add logging output to ticket · b543d090
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Add logging output to hooked · 51e92e14
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Create dev-suite tool to orchestrate tooling · b8635f6a
      Michael Gattozzi authored
      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.
    • Michael Gattozzi's avatar
      Setup the website skeleton with the kube theme · bcea608c
      Michael Gattozzi authored
      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.