Commit Graph

241 Commits

Author SHA1 Message Date
Casey Rodarmor
b67a2f1885
Fix 404.css link
type: documentation
2020-04-18 23:58:01 -07:00
Casey Rodarmor
87687f4dec
Add custom 404 page to site
type: documentation
2020-04-18 23:43:24 -07:00
Casey Rodarmor
09b0ee316c
Document piece length selection algorithm
Add a page to the book discussing factors in piece length selection, and
Intermodal's piece length selection algorithm.

type: documentation
pr: https://github.com/casey/intermodal/pull/392
fixes:
- https://github.com/casey/intermodal/issues/367
2020-04-18 23:12:31 -07:00
Casey Rodarmor
3ed449ce93
Generate reference sections with bin/gen
type: documentation
2020-04-18 19:14:54 -07:00
Casey Rodarmor
a6bf752791
Use invariant instead of unwrap and expect
Add the `Invariant` trait, which provides `Invariant::invariant` and
`Invariant::invariant_unwrap` methods, and use them instead of unwrap
and expect.

I think these methods are a bit clearer than `unwrap` and `expect`,
since they more clearly document intent, i.e. that the thing passed to
`invariant` should be a description of an invariant that should always
be true, and should provide better error messages.

Replace uses of `unwrap` and `expect` with `invariant`.

type: reform
fixes:
- https://github.com/casey/intermodal/issues/167
2020-04-18 14:41:27 -07:00
Casey Rodarmor
faf46c0f0e
Test that globs match torrent contents
Globs should match paths within the torrent root, not including the
torrent root. Test that this is the case.

type: testing
fixes:
- https://github.com/casey/intermodal/issues/377
2020-04-18 13:46:50 -07:00
Casey Rodarmor
0a754d0bcf
Add manual Arch install link
Add a link to the arch wiki for manual installation from AUR.

type: documentation
fixes:
- https://github.com/casey/intermodal/issues/373
2020-04-18 13:33:09 -07:00
Casey Rodarmor
0a870ed2ee
Get current time early when creating torrents
Since getting the system time is fallible, do it early when creating a
torrent, so as to avoid potentially wasting time searching and hashing.

type: reform
fixes:
- https://github.com/casey/intermodal/issues/207
2020-04-18 13:24:44 -07:00
Casey Rodarmor
9098d36840
Readme improvements
- Mention various chat channels
- Add `intermodal-bin` package to package table
- Document `bin/gen`
- Add contributing section
- Link to book

type: documentation
2020-04-17 23:28:08 -07:00
Casey Rodarmor
04338e3501
Merge documentation and changelog generation
Merge documentation generation into a single binary, `bin/gen`. This
includes: The changelog, man pages, the readme, and the book.

type: reform
2020-04-17 21:31:54 -07:00
Matt Boulanger
1f8023d13a
Fix directory link in README 2020-04-15 16:37:51 -07:00
strickinato
cb8b5a6919
Partially implement BEP 53
This enables `--select-only 1,2,3` which gets appended to the magnet
link as `&so=1,2,3`.

It's a partial implementation because we're missing support for file
ranges ie `--select-only 4-6`

type: added
fixes:
- https://github.com/casey/intermodal/issues/245
2020-04-12 20:42:45 -07:00
Casey Rodarmor
6185d6c8a2
Add table of packages to readme
type: documentation
pr: https://github.com/casey/intermodal/pull/372
fixes:
- https://github.com/casey/intermodal/issues/369
2020-04-11 17:27:47 -07:00
Casey Rodarmor
ddf097c836
Fix publish recipe
The current publish recipe has a race condition, where pushing a release
tag will trigger a new GitHub Actions, build, causing the push to master
to fail, because the status checks are still in progress.

Finish with `just merge` instead of `just done`, which will wait on the
status checks to finish again.

type: development
pr: https://github.com/casey/intermodal/pull/368
2020-04-11 04:46:18 -07:00
Casey Rodarmor
707fdea21d
Release v0.1.5
- Bump version: 0.1.4 -> 0.1.5
- Update changelog
- Update man page
- Update book

type: release
pr: https://github.com/casey/intermodal/pull/366
2020-04-11 04:28:23 -07:00
Casey Rodarmor
727d5c1028
Fix Z Shell completions
The clap-generated zsh completion scripts use unescaped double-quoted
strings for the subocommand description text, which causes backtick
characters to be evaluated.

Remove backticks from the subcommand descriptions, to un-break the zsh
completion scripts.

type: fixed
pr: https://github.com/casey/intermodal/pull/365
2020-04-11 04:22:22 -07:00
Casey Rodarmor
f05807290b
Render command help text in book to avoid wrapping
The command `--help` text output in the book was very wide, which caused
it to be clipped and require scrolling horizontally to see it all.

This diff renders the text at 80 columns, which makes it visible without
scrolling at reasonable screen sizes.

To do this, `env::run` now checks for the presence of the environment
variable `IMDL_TERM_WIDTH`, which, if set to a positive integer, will be
passed to `Clap::set_term_width`.

`bin/man` now uses this to render the help text at 80 characters.

type: documentation
pr: https://github.com/casey/intermodal/pull/364
2020-04-11 04:00:52 -07:00
Casey Rodarmor
ed34ff48a7
Add fuchsi/maketorrent to prior art table
type: documentation
pr: https://github.com/casey/intermodal/pull/362
2020-04-10 22:33:24 -07:00
Casey Rodarmor
a3f4618722
Rename distributing large datasets
type: documentation
pr: https://github.com/casey/intermodal/pull/361
2020-04-10 21:10:31 -07:00
Casey Rodarmor
1c9ff0cde4
Add suggestions for distributing large datasets to book
type: documentation
pr: https://github.com/casey/intermodal/pull/360
2020-04-10 20:54:14 -07:00
Casey Rodarmor
ff6f6d4c3d
Test that --globs match entire file paths
E.g. `--glob x*` matches `x/y`.

type: testing
pr: https://github.com/casey/intermodal/pull/357
2020-04-10 17:11:00 -07:00
Casey Rodarmor
b914c17594
Add buildtorretn to prior art section of book
type: documentation
pr: https://github.com/casey/intermodal/pull/355
2020-04-10 16:14:51 -07:00
Casey Rodarmor
f070c62b12
Release v0.1.4
- Bump version: 0.1.3
- Update dependencies
- Update generated documentation

type: release
pr: https://github.com/casey/intermodal/pull/354
2020-04-10 15:32:32 -07:00
Casey Rodarmor
4dfe537fa5
Prevent progress bar from overflowing
Use the `wide_bar` indicatif format specifier to truncate the progress
bar when the terminal is narrow. This prevents the progress bar from
printing mulitple times when the terminal is narrow

type: fixed
pr: https://github.com/casey/intermodal/pull/353
2020-04-10 15:04:28 -07:00
Casey Rodarmor
a67eb72848
Improve install.sh and documentation
- Don't fail now that archive contains directory
- Change default install location to `~/bin`
- Suggestion installing in ~/bin
- Add instructions to create `~/bin`, install there, and add `~/bin` to
  the PATH variable.

type: distribution
pr: https://github.com/casey/intermodal/pull/352
2020-04-09 20:48:43 -07:00
Casey Rodarmor
e54bdeb95d
Remove use of unreachable in favor of internal errors
type: reform
pr: https://github.com/casey/intermodal/pull/351
fixes:
- https://github.com/casey/intermodal/issues/188
2020-04-09 20:07:43 -07:00
Casey Rodarmor
52b78b90f6
Improve badges
- Make discord badge purple
- Add book badge
- Give crate badge rust logo

type: documentation
pr: https://github.com/casey/intermodal/pull/350
2020-04-09 18:36:26 -07:00
Casey Rodarmor
8e6a2b0034
Release v0.1.3
- Bump version: 0.1.2 -> 0.1.3
- Update changelog
- Update book
- Add `update` recipe

type: release
2020-04-09 17:30:04 -07:00
Casey Rodarmor
268c62b66d
Add bin/man command for generating man pages
Generates man pages and book entries for all subcommands, and keeps the
commands index in the book up to date.

There is much cursed roff munging in this diff.

type: documentation
2020-04-09 15:23:12 -07:00
Casey Rodarmor
14fff1d888
Make smaller demo for readme
type: documentation
2020-04-08 06:23:51 -07:00
Casey Rodarmor
4f8b6a212e
Improve demo GIF
- Tweak timing
- Increase scale to 4x
- Use local copy of asciicast2gif avoid missing characters

type: documentation
2020-04-08 04:26:37 -07:00
Casey Rodarmor
685883f026
Release v0.1.2
- Bump version: v0.1.2 -> v0.2.3
- Update man page
- Update changelog
- Update release recipe

type: release
2020-04-07 23:58:20 -07:00
Casey Rodarmor
03a9935164
Skip fixup commits in changelog
This change Makes the changelog generator ignore fixup commits.

`git commit --fixup` can be used to mark that a commit should be
squashed before merging, which can be done automatically with
`git rebase --autosquash`. Fixup commits have a summary that starts with
`fixup!`

type: development
2020-04-07 23:41:06 -07:00
Casey Rodarmor
a395052f7c
Deduplicate progress style string
type: reform
2020-04-07 22:10:49 -07:00
Casey Rodarmor
db2a2ac4f5
Refactor demo recipe in justfile into multiple recipes
type: development
2020-04-07 22:06:44 -07:00
Casey Rodarmor
92748f9fd4
Make changelog generator strict
Make the changelog generator fail if commits don't contain metadata.

type: changed
pr: https://github.com/casey/intermodal/pull/341
2020-04-07 20:33:04 -07:00
Casey Rodarmor
c33446b481
Generate changelog from git history
type: development
pr: https://github.com/casey/intermodal/pull/337
fixes:
- https://github.com/casey/intermodal/issues/336
2020-04-07 19:59:09 -07:00
Casey Rodarmor
6edab1fa3f
Use TestEnv::assert_ok everywhere
`TestEnv::assert_ok` prints stderr and stdout, and so provides more
information in the event of an error.

type: reform
fixes:
- https://github.com/casey/intermodal/issues/330
2020-04-07 19:38:06 -07:00
Casey Rodarmor
8e3f5516af
Use attractive paths in user-facing messages
If a user passes `--input foo`, print "Searching `foo` for files…",
instead of the resolved, absolute path to `foo`, since the former is
what the user typed in.

This was way harder, and had way more edge cases, than I thought it would
be!

One takaway, lexical path cleaning is excellent.

type: changed
fixes:
- https://github.com/casey/intermodal/issues/252
- https://github.com/casey/intermodal/issues/332
2020-04-07 19:37:51 -07:00
Casey Rodarmor
1cfc021453
Forbid empty input, output, and path targets
When an empty path is passed to `Env::resolve`, the result is the
current working directory. This is bad, so forbid the user to pass in
empty paths.

type: fixed
2020-04-07 19:01:43 -07:00
Eric Siegel
c23b0635ee
Add ability to create single-file torrents from stdin
Torrents may now be created from standard input by passing `--input -`.

Since `--name` and `--output` cannot be deduced, they are required when
`--input -`.

type: added
2020-04-07 19:01:43 -07:00
Casey Rodarmor
796024bec9
Split automerge functionality into merge recipe
type: development
2020-04-07 19:01:42 -07:00
Casey Rodarmor
4aa8f47da5
Add "Metadata/Prior Art" section to book
Mention Media RSS specification, a structured metadata standard for RSS.

type: documentation
2020-04-07 19:01:42 -07:00
Casey Rodarmor
4c90bc41c3
Rewrite pr recipe to merge when CI passes
type: development
2020-04-07 19:01:42 -07:00
Casey Rodarmor
b16da8da5a
Rewrite done recipe for new merge workflow
The new sign-preserving merge workflow is to just
wait until commits pass CI, and then push directly
to master on GitHub.

type: development
2020-04-07 19:01:42 -07:00
Casey Rodarmor
9d43fa4275
Fix link to rodarmor's PGP key in readme
type: documentation
2020-04-07 19:01:42 -07:00
Casey Rodarmor
543524b96d
Mention signature policy in readme
Document signature policy in readme. This will require changing the
workflow for merging commits, to avoid polluting the commit history with
signatures by a GitHub-controlled key.

type: documentation
2020-04-07 19:01:42 -07:00
Casey Rodarmor
f17527e58e
Use single-quoted strings in justfile
type: reform
2020-04-07 19:01:38 -07:00
Casey Rodarmor
2515399081
Cache build artifacts
Use `actions/cache` to cache cargo registry, index, and build between
workflow runs.

type: development
2020-04-07 19:01:38 -07:00
Casey Rodarmor
83ee172b72
Create section for bittorrent book chapters
type: documentation
2020-04-07 19:01:38 -07:00