tiempo-rs/README.md

165 lines
4.5 KiB
Markdown
Raw Permalink Normal View History

2021-06-27 23:20:37 -05:00
# Tiempo
2021-06-27 23:22:50 -05:00
A [timetrap](https://github.com/samg/timetrap/) compatible command line time
2022-09-18 21:54:56 -05:00
tracking application. [Read the fine manual](https://tiempo.categulario.xyz).
2021-06-27 23:20:37 -05:00
2021-08-14 18:47:58 -05:00
## Installation
2022-07-22 06:20:47 -05:00
### For Archlinux (and derivatives) users
2023-02-03 12:17:09 -06:00
There are both binary and source packages in the AUR:
2022-07-22 06:20:47 -05:00
* [tiempo-bin](https://aur.archlinux.org/packages/tiempo-bin)
* [tiempo-git](https://aur.archlinux.org/packages/tiempo-git)
2023-02-03 12:17:09 -06:00
### For all other linux users
2022-07-22 06:20:47 -05:00
Go to [gitlab releases page](https://gitlab.com/categulario/tiempo-rs/-/releases)
and grab the latest binary for your linux. There is a `.deb` file for Debian and
Ubuntu as well as a binary for any `x86_64` Linux.
2022-11-26 21:00:11 -06:00
In the case of the tar archive you just need to run the included `install.sh`
script.
2022-07-22 06:20:47 -05:00
### For Rust developers
You have `cargo`! you can run:
2021-08-14 18:47:58 -05:00
cargo install tiempo
However that will not install the beautiful man page. Although you can still see
it at https://tiempo.categulario.xyz .
2022-07-22 06:20:47 -05:00
### For everyone else
You need to compile `tiempo` by yourself. But don't worry! It is not that hard.
Just clone [the repository](https://gitlab.com/categulario/tiempo-rs), make sure
you have [rust installed](https://rustup.rs) and run:
cargo build --release
inside the repository. The binary will be named `t` (or `t.exe` if you use
windows) and it is located inside the `target/release` directory that was
created during compilation.
2021-08-14 18:47:58 -05:00
2021-07-03 16:44:31 -05:00
## How to build
2021-06-27 23:20:37 -05:00
You need [rust](https://rustup.rs), then clone the repo and simply run
cargo test
to check that everything is working, and then
cargo build --release
2021-07-03 16:44:31 -05:00
to have a binary at `target/release/t` that you can then move to a
directory in your `PATH` or use it by its absoulte or relative paths.
2021-06-27 23:20:37 -05:00
Run
2021-07-03 16:44:31 -05:00
t --help
2021-06-27 23:20:37 -05:00
to see the options.
2021-07-21 19:07:05 -05:00
### Development database
When developing I prefer not to mess with my own database, so I use this `.env`
file:
export TIMETRAP_CONFIG_FILE=/absolute/path/to/repo/dev_config.toml
PS1="$ "
and when I want to test some commands against such config file I just source it:
source .env
cargo run -- in 'hola'
### Documentation
The docs are written using [sphinx](https://www.sphinx-doc.org/en/master/). To
install the required dependencies enter the `docs` directory and create a virual
environment:
virtualenv .venv
then activate it and install the dependencies:
source .venv/bin/activate
pip install -r requirements.txt
To build the docs just do:
make html
2022-09-18 21:54:56 -05:00
for the html version (output located at `docs/build/html`), or
make man
2022-09-20 09:52:42 -05:00
for the man page (output located at `docs/build/man/tiempo.1`). To test the man
page you can do:
man -l build/man/tiempo.1
To get a live-reloaded server with the html docs do:
2022-09-20 09:52:42 -05:00
sphinx-autobuild source/ build/html/
The contents of the man page are located in `docs/source/index.rst`,
2021-10-26 20:32:59 -05:00
formatted as
[reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html).
### Building the packages like in CI but locally
First pull the image:
podman pull tiempo-build-env
Or build it yourself from this repo:
podman build -t tiempo-build-env .
2022-11-26 18:00:47 -06:00
Then build the artifacts:
./scripts/podman-build.sh
2022-11-26 18:00:47 -06:00
To build the archlinux PKGBUILDs (depends on the artifacts folder created by the
previous command):
./scripts/podman-build-aur-bin.sh
./scripts/podman-build-aur-git.sh
2022-11-26 18:00:47 -06:00
Both of the previous commands produce PKGBUILDs in the current directory so if
you run both sequentially you'll lose the PKGBUILD of the first command.
2021-07-21 19:07:05 -05:00
## Special Thanks
To [timetrap](https://github.com/samg/timetrap) for existing, to
[samg](https://github.com/samg) for creating it. It is the tool I was looking
for and whose design I took as reference, keeping compatibility when possible.
2022-08-03 08:53:52 -05:00
2022-11-26 00:07:02 -06:00
## What I'm working on
(more or less ordered by priority)
* fix the pipeline because it's broken. The last release and its artifacts are
wrong.
2022-11-26 18:52:41 -06:00
* add an install/uninstall script to the any-linux package.
2022-11-26 00:07:02 -06:00
* finish the `summary` formatter.
* match formatters by prefix (so there's no need to type all of its name if the
prefix is unambiguous).
* let resume --interactive receive a string as the text for a new entry.
2022-11-26 01:07:56 -06:00
* add a command that opens the doc in the browser just like fish
2022-11-26 18:54:26 -06:00
* compile a package for windows in CI
2022-11-26 00:07:02 -06:00
2022-08-03 08:53:52 -05:00
## Release checklist
(mostly to remind myself)
* [ ] Ensure tests pass and that clippy doesn't complain
2022-09-18 21:54:56 -05:00
* [ ] Add documentation about the new features
2022-11-10 11:45:00 -06:00
* [ ] Create an entry in `CHANGELOG.md` with the target version, commit it
2022-08-03 08:53:52 -05:00
* [ ] run `vbump`
2022-10-31 00:21:47 -06:00
* [ ] git push && git push --tags && cargo publish
* [ ] wait for release and then test the releases (aur bin and git and
packaged).