Yuya Nishihara
556ef26608
cli: make commands sub modules private
...
We've removed most of the deprecated commands.
2025-01-06 10:16:15 +09:00
Christian Stoitner
bcfa2b174b
added changelog entry for showing untracked files in jj status
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-01-05 18:53:55 +01:00
Christian Stoitner
ae91f2265f
status: show untracked files
2025-01-05 17:43:59 +01:00
Christian Stoitner
3aa97099d6
cli: plumbing to make SnapshotStats available to cmd_status
2025-01-05 17:43:59 +01:00
Christian Stoitner
cb28685901
working_copy: added UntrackedReason::FileNotAutoTracked for files not tracked because of snapshot.auto-track
2025-01-05 17:43:59 +01:00
Yuya Nishihara
2cb3ee5260
cli: restore: add --interactive flag
...
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
As Martin suggested, this is the reverse operation of "jj diffedit", and
supports fileset arguments.
https://github.com/jj-vcs/jj/issues/3012#issuecomment-1937353458
Closes #3012
2025-01-05 10:14:29 +09:00
Yuya Nishihara
0d022f1202
cli: fix interactive diff selection to not retain unmatched files
...
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
This patch doesn't fix DiffEditor::edit() API, which is fundamentally broken
if matcher argument is specified. I'm not sure if the builtin behavior is
correct or not. Suppose we add "jj diffedit FILESETS..", it would probably make
sense to leave unmatched paths unmodified because it is the command to edit the
destination (or right) tree. This is the edit_diff_external() behavior.
Fixes #5252
2025-01-04 22:21:37 +09:00
Anton Bulakh
c99c97c646
sign: Add templater methods to show signature info
...
Disclaimer: this is the work of @necauqua and @julienvincent (see
#3141 ). I simply materialized the changes by rebasing them on latest
`main` and making the necessary adjustments to pass CI.
---
I had to fix an issue in `TestSignatureBackend::sign()`.
The following test was failing:
```
---- test_signature_templates::test_signature_templates stdout ----
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: signature_templates
Source: cli/tests/test_signature_templates.rs:28
────────────────────────────────────────────────────────────────────────────────
Expression: stdout
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
0 0 │ @ Commit ID: 05ac066d05701071af20e77506a0f2195194cbc9
1 1 │ │ Change ID: qpvuntsmwlqtpsluzzsnyyzlmlwvmlnu
2 2 │ │ Author: Test User <test.user@example.com> (2001-02-03 08:05:07)
3 3 │ │ Committer: Test User <test.user@example.com> (2001-02-03 08:05:07)
4 │-│ Signature: Good test signature
4 │+│ Signature: Bad test signature
5 5 │ │
6 6 │ │ (no description set)
7 7 │ │
8 8 │ ◆ Commit ID: 0000000000000000000000000000000000000000
────────────┴───────────────────────────────────────────────────────────────────
```
Print debugging revealed that the signature was bad, because of a
missing trailing `\n` in `TestSignatureBackend::sign()`.
```diff
diff --git a/lib/src/test_signing_backend.rs b/lib/src/test_signing_backend.rs
index d47fef1086..0ba249e358 100644
--- a/lib/src/test_signing_backend.rs
+++ b/lib/src/test_signing_backend.rs
@@ -59,6 +59,8 @@
let key = (!key.is_empty()).then_some(std::str::from_utf8(key).unwrap().to_owned());
let sig = self.sign(data, key.as_deref())?;
+ dbg!(&std::str::from_utf8(&signature).unwrap());
+ dbg!(&std::str::from_utf8(&sig).unwrap());
if sig == signature {
Ok(Verification::new(
SigStatus::Good,
```
```
[lib/src/test_signing_backend.rs:62:9] &std::str::from_utf8(&signature).unwrap() = \"--- JJ-TEST-SIGNATURE ---\\nKEY: \\n5300977ff3ecda4555bd86d383b070afac7b7459c07f762af918943975394a8261d244629e430c8554258904f16dd9c18d737f8969f2e7d849246db0d93cc004\\n\"
[lib/src/test_signing_backend.rs:63:9] &std::str::from_utf8(&sig).unwrap() = \"--- JJ-TEST-SIGNATURE ---\\nKEY: \\n5300977ff3ecda4555bd86d383b070afac7b7459c07f762af918943975394a8261d244629e430c8554258904f16dd9c18d737f8969f2e7d849246db0d93cc004\"
```
Thankfully, @yuja pointed out that libgit2 appends a trailing newline
(see bfb7613d5d
).
Co-authored-by: necauqua <him@necauq.ua>
Co-authored-by: julienvincent <m@julienvincent.io>
2025-01-04 13:24:08 +01:00
pylbrecht
87b38b3073
sign: provide display in TestSigningBackend
...
We need to provide a value for the `display` attribute to assert against
in upcoming tests, which verify signature templates.
2025-01-04 13:24:08 +01:00
pylbrecht
638f123459
sign: move TestSigningBackend to lib
...
We need to make `TestSigningBackend` available for cli tests, as we will
add cli tests for signing related functionality (templates for
displaying commit signatures, `jj sign`) in upcoming commits.
Co-authored-by: julienvincent <m@julienvincent.io>
2025-01-04 13:24:08 +01:00
Yuya Nishihara
9aff586655
config: fall back to $USER if username couldn't be obtained by libc
...
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
If jj is compiled against musl libc, not all name services are available, and
getpwuid() can return null even if the system is configured properly. That's
the problem reported as #5231 . Suppose operation.username exists mainly for
logging/tracing purposes, it should be better to include something less reliable
than leaving the field empty.
This patch also removes TODO comment about empty hostname/username. It's
unlikely that the hostname is invalid (as that would cause panic on older jj
versions), and $USER would probably be set on Unix.
2025-01-04 17:54:28 +09:00
Yuya Nishihara
fcac7ed39c
config: load system host/user name by CLI and insert as env-base layer
...
Since the default now falls back to "", we can simply override the default by
CLI. We don't have to touch the environment in jj-lib.
2025-01-04 17:54:28 +09:00
Yuya Nishihara
5842e58db6
cli: add test that runs basic jj commands with minimal configuration
2025-01-04 17:54:28 +09:00
Benjamin Tan
6ddc5a7b30
cli: split: remove deprecated --siblings
options
...
This has been replaced by the `--parallelize` option in a9953b3
.
2025-01-04 15:43:18 +08:00
Benjamin Tan
62c1c48c7a
cli: log, op log, evolog: remove deprecated -l
short alias for --limit
...
This removes the `-l` short alias for `--limit` for `jj log`,
`jj op log` and `jj evolog` initially deprecated in 72438fc
.
2025-01-04 15:43:18 +08:00
Benjamin Tan
947281687f
cli: remove deprecated jj file
commands
...
The following deprecated commands have been removed for their `jj files`
alternatives:
- `jj cat` was deprecated for `jj file show` in 47bd6f4
and e6c2108
.
- `jj chmod` was deprecated for `jj file chmod` in 47bd6f4
.
- `jj files` was deprecated for `jj file list` in 5d307e6
.
2025-01-04 15:43:18 +08:00
blinry
1ddfc59ee9
docs: Use "branch" consistently when talking about Git's branches
...
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
Some places used "bookmark" instead, which makes it harder to
differentiate between jj's and Git's differing concepts.
2025-01-03 10:54:00 -06:00
dependabot[bot]
337663c312
cargo: bump the cargo-dependencies group with 3 updates
...
Bumps the cargo-dependencies group with 3 updates: [async-trait](https://github.com/dtolnay/async-trait ), [bstr](https://github.com/BurntSushi/bstr ) and [tempfile](https://github.com/Stebalien/tempfile ).
Updates `async-trait` from 0.1.83 to 0.1.84
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.83...0.1.84 )
Updates `bstr` from 1.11.2 to 1.11.3
- [Commits](https://github.com/BurntSushi/bstr/compare/1.11.2...1.11.3 )
Updates `tempfile` from 3.14.0 to 3.15.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.14.0...v3.15.0 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: bstr
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-03 10:15:42 -06:00
Austin Seipp
66151f0888
cli: drop support for jj init --{git, git_repo}
...
These were deprecated early last year in favor of `jj git init`.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-01-03 10:15:01 -06:00
Yuya Nishihara
42d7beaf2c
cli: config: allow comma in bare TOML string
...
Fixes #5233
2025-01-03 21:48:41 +09:00
Yuya Nishihara
641ec52540
cli: replace run_ui_editor() and edit_temp_file() with editor type
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-01-03 10:23:58 +09:00
Yuya Nishihara
e306f84765
cli: add "ui.editor" type that captures configuration
...
The idea is the same as diff_editor()/selector() API. This object will be passed
in to edit_*description() functions in place of (repo_path, settings) pair.
"ui.editor" isn't specific to editing commit descriptions, but it's mainly used
for that purpose. So I put the wrapper type in description_util.rs.
2025-01-03 10:23:58 +09:00
Yuya Nishihara
e344c21a28
cli: use insta snapshot to test editor error messages
2025-01-03 10:23:58 +09:00
JDSeiler
d5b0aa20cb
evolog: Implement --reversed flag
...
Adds some additional helper functions for converting between jj_lib's
GraphEdge and the graphlog's Edge type.
2025-01-02 20:21:59 -05:00
Yuya Nishihara
c7dd28a292
settings: fall back to empty op hostname/username if default can't be obtained
...
It's not super important that operation log has a valid user/host name. Let's
allow invalid system configuration. In jj 0.24.0, invalid hostname was panic,
and invalid username was mapped to "Unknown".
Fixes #5231
2025-01-03 10:20:33 +09:00
Samuel Tardieu
39bdd5eb3f
perf: use .next_back()
to get the last component
...
Using `.last()` needs to go through all components first instead of
splitting only the last one.
2025-01-02 23:24:04 +01:00
Samuel Tardieu
9048e80fed
clippy: enable useless_conversion
lint
2025-01-02 23:23:19 +01:00
Samuel Tardieu
373b155bf0
style: remove useless type conversion
2025-01-02 23:23:19 +01:00
Austin Seipp
c9b6ba7b57
nix: run nix flake update
...
Keeping the wheels greased.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-01-02 16:14:38 -06:00
Bryce Berger
cc015310ea
nix: add name to devshell
...
This changes the `$name` environment variable from `nix-shell-env` to
`jujutsu-env` when inside the nix-provided devshell.
2025-01-02 13:41:54 -06:00
Bryce Berger
2281450359
nix: use dynamic completions in installPhase
...
Have been used in nixpkgs since the update to 0.24
2025-01-02 14:37:53 -05:00
Ollivier Robert
602b79f7fd
Add a paragraph on how to install jj completions into Powershell.
...
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
Change USER into $HOME.
2025-01-02 10:52:55 -06:00
dependabot[bot]
c522b5d4dd
cargo: bump the cargo-dependencies group with 3 updates
...
Bumps the cargo-dependencies group with 3 updates: [bstr](https://github.com/BurntSushi/bstr ), [clap_complete_nushell](https://github.com/clap-rs/clap ) and [syn](https://github.com/dtolnay/syn ).
Updates `bstr` from 1.11.1 to 1.11.2
- [Commits](https://github.com/BurntSushi/bstr/compare/1.11.1...1.11.2 )
Updates `clap_complete_nushell` from 4.5.4 to 4.5.5
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.4...clap_complete_nushell-v4.5.5 )
Updates `syn` from 2.0.93 to 2.0.94
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.93...2.0.94 )
---
updated-dependencies:
- dependency-name: bstr
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: clap_complete_nushell
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-03 00:52:18 +08:00
Yuya Nishihara
2304db6abf
cli: squash: use indoc::formatdoc! to indent formatted instructions nicely
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Run doctests (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-01-02 15:07:09 +09:00
Yuya Nishihara
5adeb6337d
cli: squash: inline move_diff() to address "too many arguments" linter warning
2025-01-02 15:07:09 +09:00
Yuya Nishihara
3cdd5717ef
cli: squash: extract first half of move_diff() to separate function
...
I'll inline move_diff() instead. I think the current implementation is organized
this way just because we had "jj move" command.
2025-01-02 15:07:09 +09:00
Yuya Nishihara
d38d6f69aa
cli: split sparse sub commands into modules
2025-01-02 15:07:00 +09:00
Yuya Nishihara
cdbe4dfc67
signing: cap number of cached verification results
...
I didn't notice Signer had a cache when I made the change db6a58d315
"store:
switch in-memory cache to LRU-based HashMap to cap memory usage."
2025-01-02 15:06:52 +09:00
Austin Seipp
041c4fecb7
release: 0.25.0
...
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-01-01 21:56:15 -06:00
umnikos
ecbee49bf4
docs: fix typo in builtin_immutable_heads()
description
binaries / Build binary artifacts (push) Has been cancelled
nix / flake check (push) Has been cancelled
build / build (, macos-13) (push) Has been cancelled
build / build (, macos-14) (push) Has been cancelled
build / build (, ubuntu-latest) (push) Has been cancelled
build / build (, windows-latest) (push) Has been cancelled
build / build (--all-features, ubuntu-latest) (push) Has been cancelled
build / Build jj-lib without Git support (push) Has been cancelled
build / Check protos (push) Has been cancelled
build / Check formatting (push) Has been cancelled
build / Run doctests (push) Has been cancelled
build / Check that MkDocs can build the docs (push) Has been cancelled
build / Check that MkDocs can build the docs with latest Python and uv (push) Has been cancelled
build / cargo-deny (advisories) (push) Has been cancelled
build / cargo-deny (bans licenses sources) (push) Has been cancelled
build / Clippy check (push) Has been cancelled
Codespell / Codespell (push) Has been cancelled
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
2024-12-31 19:24:36 -06:00
Waleed Khan
0651e5a468
ci: check Rust documentation
2024-12-31 17:11:28 -06:00
Waleed Khan
a28edb0d28
docs: fix cargo doc
warnings
2024-12-31 17:11:28 -06:00
Waleed Khan
6017c27626
cleanup: remove extra whitespace from build.yml
2024-12-31 17:11:28 -06:00
Waleed Khan
34ec85edbd
docs: revert "docs: update installation docs to say that cmake
is needed"
...
This reverts commit b7ba3fc0be
.
As per discussion in https://github.com/martinvonz/jj/pull/5047 , I would like to make it so that the default build configuration doesn't need `cmake`.
2024-12-31 17:07:52 -06:00
Waleed Khan
c7b677b86d
build: switch back to gix/max-performance-safe
feature by default
...
Using `gix/max-performance` requires `cmake` as a build-time dependency, which could be a significant barrier for contributors (including existing ones, like me, who already work on jj but didn't have `cmake` installed thus far).
This commit switches back to using `gix/max-performance-safe`, which doesn't have the `cmake` dependency, and adds `gix/max-performance` behind the `gix-max-performance` feature for `jj-lib`.
It also adds `gix-max-performance` to the `packaging` feature group, since I'm assuming that packagers will want maximum performance, and are more likely to have `cmake` at hand.
Tested with
```
$ cargo build --workspace
$ cargo build --workspace --features packaging
```
(and the `--features packaging` build failed until I installed `cmake`)
2024-12-31 17:07:52 -06:00
Yuya Nishihara
cff73841ed
repo: remove &UserSettings argument from new/rewrite_commit(), use self.settings
binaries / Build binary artifacts (push) Waiting to run
nix / flake check (push) Waiting to run
build / build (, macos-13) (push) Waiting to run
build / build (, macos-14) (push) Waiting to run
build / build (, ubuntu-latest) (push) Waiting to run
build / build (, windows-latest) (push) Waiting to run
build / build (--all-features, ubuntu-latest) (push) Waiting to run
build / Build jj-lib without Git support (push) Waiting to run
build / Check protos (push) Waiting to run
build / Check formatting (push) Waiting to run
build / Check that MkDocs can build the docs (push) Waiting to run
build / Check that MkDocs can build the docs with latest Python and uv (push) Waiting to run
build / cargo-deny (advisories) (push) Waiting to run
build / cargo-deny (bans licenses sources) (push) Waiting to run
build / Clippy check (push) Waiting to run
Codespell / Codespell (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-latest) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2024-12-31 10:51:57 +09:00
Yuya Nishihara
14b52205fb
repo: remove &UserSettings argument from start_transaction(), use self.settings
2024-12-31 10:51:57 +09:00
Yuya Nishihara
57806ee8c2
test_commit_builder: reload repo per settings
...
I'm going to remove the settings argument from start_transaction(),
new_commit(), and rewrite_commit(), and these functions will use the settings
passed in to the constructor.
2024-12-31 10:51:57 +09:00
Yuya Nishihara
475ac4e86a
repo: keep copy of UserSettings, remove RepoSettings
...
The idea is that ReadonlyRepo/MutableRepo hold UserSettings to accomplish
their operations (such as transaction commit.) Later patches will remove
the "settings" argument from a couple of repo methods, which will greatly
reduce the amount of settings refs we had to pass around.
The current UserSettings is set up for the repo, so we wouldn't need a separate
RepoSettings type.
2024-12-31 10:51:57 +09:00
Yuya Nishihara
feb032ee34
settings: make UserSettings cheap to clone
...
I think the issue #5144 can be fixed cleanly if UserSettings object is
loaded/resolved per repo/workspace, not per CommandHelper.
This change makes it clear that UserSettings is supposed to be shared
immutably.
2024-12-31 10:51:57 +09:00