Commit Graph

246 Commits

Author SHA1 Message Date
Casey Rodarmor
06b6d22005
Switch mdbook version back to latest
mdbook v0.4.3 release binaries were corrupted, but have been fixed.

type: development
2020-09-10 14:17:59 -07:00
Casey Rodarmor
42e20a4a6a
Suppress stderr output if --quiet is passed
Instead of checking if `options.quiet` is set whenever printing, disable
all printing to stderr if the `--quiet` flag is passed.

Although it isn't strictly necessary, I still don't construct a progress
bar if `options.quiet` is true, since progress bars might be a little
more expensive than just printing error messages.

A future diff might add checking to the `errln` and `outln` macros, so
that they don't print at all if the respective output stream is
inactive.

type: reform
2020-09-08 16:10:51 -07:00
Casey Rodarmor
39dcb5e183
Don't treat head as special in changelog
The changelog is no longer comitted, so we no longer need to avoid
including the commit hash.

type: documentation
2020-09-06 23:21:01 -07:00
Casey Rodarmor
2d226cf016
Make changelog author more concise
If both author name and email are present for a commit, format as a
link. If one is absent, format as the other. If both are absent, format
as "Anonymous".

type: documentation
2020-09-06 22:54:34 -07:00
Casey Rodarmor
8ca2765259
Release v0.1.11
- Bump version: 0.1.10 → 0.1.11
- Update dependencies
- Remove deprecated lto flag from package script
- Invalidate github cache

type: release
2020-09-06 22:04:12 -07:00
Casey Rodarmor
7ca9ed62d5
Mark Info::infohash as potentially lossy
`Info::infohash` will discard fields not present in the `Info` struct,
and can thus produce an erronous infohash.

To try to prevent this function from being called in those
circumstances, rename it to `Info::infohash_lossy`, and add a comment
explaining why it is dangerous.

Embarassingly, `Info::infohash` was called in
`TorrentSummary::from_input`, and thus transitively by the torrent show
subcommand, where it is definitely not safe, since torrent show is
intended to be used with arbitrary torrents. This is now fixed.

There was also a build failure caused by a cache issue, so change the
cache keys to invalidate the caches.

type: fixed
2020-09-06 20:23:45 -07:00
Casey Rodarmor
dbb0eac96d
Update clippy lint names
type: changed
2020-09-06 14:26:19 -07:00
Casey Rodarmor
a2a4ea1430
Mark tags that start with v as releases
type: development
2020-07-01 23:52:48 -07:00
Casey Rodarmor
a53c2bc5db
Remove Keybase and IRC links from readme
Keybase and IRC chat never got any users, and since I never check them
and they get no traffic, it's probably best to remove them from the
readme.

type: documentation
2020-06-25 18:48:11 -07:00
Casey Rodarmor
705014c87e
Release v0.1.10
- Bump version: 0.1.9 → 0.1.10

type: release
2020-06-24 03:44:11 -07:00
Casey Rodarmor
04b58464c9
Add --no-git flag to gen book
Skip generating the changelog for the book when `--no-git` is passed to
`gen book` or `gen all`.

type: added
2020-06-24 03:33:50 -07:00
Casey Rodarmor
5951139fdf
Release v0.1.9
- Bump version: 0.1.8 → 0.1.9
- Update dependencies
- Publish to cargo as last step in publish recipe

type: release
2020-06-23 22:04:53 -07:00
Casey Rodarmor
047b36639d
Add --no-git flag to gen all
The flag skips steps whichr require a git checkout, currently only the
changelog generator.

type: added
2020-06-23 21:51:13 -07:00
Casey Rodarmor
6f4f8e7595
Improve verification performance
Port the hashing performance improvements to the verifier:

- Wrap file in a BufReader
- Hash all read data at the same time

type: performance
2020-05-26 21:02:33 -07:00
Casey Rodarmor
9dea195694
Release v0.1.8
- Bump version: 0.1.7 → 0.1.8
- Update dependencies

type: release
2020-05-26 14:04:15 -07:00
Casey Rodarmor
f832605d81
Document benchmarks in readme
type: documentation
2020-05-26 13:56:42 -07:00
Casey Rodarmor
4e6b475470
Benchmark and improve hashing performance
- Add a `bench` feature that exposes a hasher benchmark.

- Make the hasher read up to the next piece end and hash everything it
  reads, instead of hashing one byte at a time. This was a 4x
  improvement on the benchmark. (Terrible code == easy wins!)

type: performance
2020-05-26 00:15:09 -07:00
Casey Rodarmor
1b2d79b4a5
Split crate into a binary and a library
Split imdl into a binary, `src/main.rs`, and a library, `src/lib.rs`.

This will enable benchmarking, fuzz testing, and anything that requires
making `imdl` functions accessible another crate.

type: reform
2020-05-25 21:46:20 -07:00
Casey Rodarmor
c1c8d3cb89
Move data crate to its own repo
I suspect that the `data` crate will get more review, use, and
contributors if it lives in its own repository, so move it to
casey/data.

type: removed
2020-05-24 05:30:42 -07:00
Casey Rodarmor
173c0e5ac5
Initial commit of the data crate
The `data` crate is intended to be used as the manifest serialization
and deserialization format.

This blog post describes the motivation and goals for this crate:

    https://rodarmor.com/blog/data

type: added
2020-05-10 21:38:59 -07:00
Casey Rodarmor
213624cf8e
Metainfo refactoring
- Combine test Metainfo values into a small number of globally available
  values.
- Serialize update URLs as `URL` insted of `String`.
- Add additional `show` tests

type: reform
2020-05-04 03:10:21 -07:00
Casey Rodarmor
f4f7a69069
Add co-authored-by field to commit metadata
This field is used by GitHub to credit co-authors.

type: development
co-authored-by: y7y <pair@rodarmor.com>
2020-05-01 01:28:40 -07:00
Casey Rodarmor
e7872f56f2
Move all output from bin/gen to target/gen
To make it clearer what is and isn't generated content, make gen place
all generated output in `target/gen`.

Also, try to make the readme clearer about the location of build
artifacts.

type: development
2020-05-01 00:29:40 -07:00
Casey Rodarmor
bf29d74b3e
Add changelog to book
Add the changelog to the book. It's no longer comitted, so it's good to
have the current version available somewhere.

type: documentation
2020-04-30 00:22:43 -07:00
Casey Rodarmor
60a72cf057
Add color to bin/gen error messages
type: development
2020-04-29 22:58:07 -07:00
Casey Rodarmor
8dfdbe43df
Add bin/gen command to diff generated content
The following command will print a diff between HEAD and HEAD^:

    cargo run --package gen diff

type: development
2020-04-29 22:46:32 -07:00
Casey Rodarmor
342266853e
Improve bin/gen error messages
Create an error enum with actual error messages.

type: development
2020-04-29 00:36:25 -07:00
Casey Rodarmor
e396b7f071
Don't commit changelog
It's pretty annoying to have to ammend commits with the contents of the
changelog, so top committing it.

type: development
2020-04-28 22:58:48 -07:00
Annie Cherkaev
f1514dd301
Add support for BEP 39.
Add update-url field to info struct.

See BEP 39 for more details:
http://bittorrent.org/beps/bep_0039.html

type: added
fixes:
- https://github.com/casey/intermodal/issues/98
2020-04-27 17:47:40 -07:00
Casey Rodarmor
d077da405e
Improve documentation
- Document the various ways files can be included and excluded from
  torrents in the book.

- Make links to the book more prominent in the readme, by including them
  in sections with obvious names.

type: documentation
2020-04-24 23:32:24 -07:00
Casey Rodarmor
f8711a79a3
Improve the done and merge recipes
- Rebase master branch without checking it out
- Don't check for no changes, since we're using `-d`, which will fail on
  an unmerge branch.
- Make merge take an argument, so it can be used with something other
  than the current branch.

type: development
2020-04-23 17:05:41 -07:00
Casey Rodarmor
97ee5684f8
Don't invalid build cache when Cargo.lock changes
I copied the gihub actions caching configuration from examples, and I'm
not sure it's optimal. In particular, it causes a cache miss whenever
any `Cargo.lock` changes. I suspect that it would be better to always
hit the cache, and let cargo figure out what it needs to rebuild.

type: development
2020-04-23 16:49:03 -07:00
Casey Rodarmor
c75ec39b14
Remove watch dropdown image from readme
It's big and ugly and doesn't add much.

type: documentation
2020-04-23 15:27:35 -07:00
Casey Rodarmor
8fbe39726f
Add notes for packagers to readme
type: documentation
2020-04-23 14:59:49 -07:00
Casey Rodarmor
43788cac9a
Fix bin/package
Also, To more easily test the `bin/package` script, build and publish
packages for all tags, not just those that start with `v`.

type: fixed
2020-04-23 01:20:24 -07:00
Casey Rodarmor
f217ac659a
Release v0.1.7
- Bump version: 0.1.6 → 0.1.7
- Update dependencies

type: release
2020-04-22 13:15:28 -07:00
Casey Rodarmor
25ac072985
Allow positional input to imdl torrent show
Input can now be passed to `imdl torrent show` without a flag:

  imdl torrent show foo.torrent

Passing input by flag continues to work.

type: changed
fixes:
- https://github.com/casey/intermodal/issues/375
2020-04-22 00:38:00 -07:00
Casey Rodarmor
cecd2f66a5
Fix help strings
Fix inconsistent argument value names in help strings.

type: fixed
2020-04-22 00:29:14 -07:00
Casey Rodarmor
ebec2d591a
Allow positional shell to imdl completions
The shell can now be passed to `imdl completions` without a flag:

  imdl completions bash

Passing the shell by flag continues to work.

type: changed
fixes:
- https://github.com/casey/intermodal/issues/375
2020-04-21 23:57:53 -07:00
Casey Rodarmor
134c241ae7
Use lexiclean crate for lexical path cleaning
I moved all the lexical path cleaning functionality into a separate
crate, so it can be used by other projects.

type: reform
2020-04-21 23:10:34 -07:00
Casey Rodarmor
323434d0aa
Allow positional input to imdl torrent verify
Input can now be passed to `imdl torrent verify` without a flag:

  imdl torrent verify foo.torrent

Passing input by flag continues to work.

type: changed
fixes:
- https://github.com/casey/intermodal/issues/375
2020-04-21 22:35:41 -07:00
Casey Rodarmor
5ba885dbc4
Take input to imdl torrent create as positional
Allow taking the `--input` argument to `imdl torrent create` as a
positional argument, so the following now works:

    imdl torrent create foo

Taking input by flag `--input` still works.

type: changed
fixes:
- https://github.com/casey/intermodal/issues/375
2020-04-21 22:23:39 -07:00
Casey Rodarmor
c22df5a083
Don't commit man pages
Don't commit man pages, since that bloats commits.

Attempt to build them in `bin/package`. This is fraught, since we need
`help2man`. Hopefully this works!

type: development
2020-04-21 00:52:06 -07:00
Casey Rodarmor
4d67d3a10d
Don't commit the book
To avoid bloating commits, don't commit any auto generated from the
book.

type: development
2020-04-21 00:36:48 -07:00
Casey Rodarmor
28114c3d64
Don't commit shell completion scripts
Committing the completion scripts bloats diffs, so stop committing them.

Before copying release files, generate the scripts in `bin/package`.

type: development
2020-04-21 00:29:26 -07:00
Casey Rodarmor
4f4464e3a2
Get st_flags from MetadataExt on MacOS
I missed that `st_flags` is available on `MetadataExt` on MacOS, so get
them from there, instead of calling `libc::stat`.

type: reform
2020-04-21 00:03:16 -07:00
Celeo
deca555ac3
Allow suppressing output with --quiet
Add a global flag `--quiet`, which allows supressing output from
`imdl torrent create` and `imdl torrent verify`.

Since it's a global option, it should be given before the subcommand,
e.g.:

    imdl --quiet torrent create --input .

type: added
fixes:
- https://github.com/casey/intermodal/issues/174
2020-04-20 21:37:07 -07:00
Casey Rodarmor
838167c4d3
Describe in FAQ creating torrent from git repo
type: documentation
2020-04-20 20:10:26 -07:00
Celeo
9b72873ed1
Optionally respect .gitignore in imdl torrent create
Add a '--ignore' flag that, when passed, causes `imdl torretn create` to
skip files listed in `.gitignore`, `.ignore`, `.git/info/exclude`, and
`git config --get core.excludesFile`.

Also switches from the `walkdir` crate to the `ignore` crate, which uses
`walkdir` internally, and which handles `.gitignore` and `.ignore`
files.

This changes the behavior of `-include-hidden` on MacOS to no longer
skip entries with the hidden attribute set, due to `ignore` not exposing
`walkdir`'s filter functionality.

A PR[0] is pending to add filtering to `ignore`, so hopefully this
functionality can be re-implemented soon.

[0] https://github.com/BurntSushi/ripgrep/pull/1557

type: added
fixes:
- https://github.com/casey/intermodal/issues/378
2020-04-20 19:20:12 -07:00
Casey Rodarmor
9f48062461
Improve FAQ template
Use separate anchor tags, so FAQ entry titles are properly rendered.

type: documentation
2020-04-20 00:17:57 -07:00