GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — refactor: to have similar structure to uutils/coreutils by toggysmith · Pull Request #262 · uutils/diffutils

Conversation

@toggysmith

@toggysmith toggysmith commented Jul 11, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

This refactors the codebase to have a more similar structure to uutils/coreutils.

Each of the utils have been moved into their own crates under src/uu and shared code has been moved into the src/uucore crate. Each util crate has a symlink to the licences in the root of the repo.

The changes here are purely a refactor - nothing else has been changed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@toggysmith
toggysmith force-pushed the split-into-separate-crates branch from f811086 to 062bcca Compare July 11, 2026 22:24
@toggysmith
toggysmith marked this pull request as draft July 11, 2026 22:28
@toggysmith
toggysmith marked this pull request as ready for review July 11, 2026 22:34
@sylvestre
sylvestre force-pushed the split-into-separate-crates branch from 517a649 to 17daa24 Compare August 24, 2026 19:09
@sylvestre

sylvestre commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

uucore is used by coreutils. i will just rename it to diffutils_core

toggysmith reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre

sylvestre commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

great work btw :)
i wanted this for years!

toggysmith reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

GNU diffutils testsuite comparison:

Test results comparison:
  Current:   TOTAL: 33 / PASSED: 0 / FAILED: 33 / SKIPPED: 0
  Reference: TOTAL: 33 / PASSED: 8 / FAILED: 21 / SKIPPED: 4

Changes from main branch:
  TOTAL: +0
  PASSED: -8
  FAILED: +12

New test failures (12):
  - basic
  - bignum
  - brief-vs-stat-zero-kernel-lies
  - bug-64316
  - cmp
  - diff3
  - help-version
  - large-subopt
  - strcoll-0-names
  - strip-trailing-cr
  - timezone
  - y2038-vs-32bit
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@codspeed

codspeed Bot commented Aug 24, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Merging this PR will degrade performance by 3.57%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

❌ 1 regressed benchmark
✅ 25 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Simulation cmp_parser 12.4 µs 12.8 µs -3.57%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing toggysmith:split-into-separate-crates (bc9defb) with main (cbc5298)

Open in CodSpeed
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre sylvestre mentioned this pull request Aug 24, 2026
ci: make the GNU testsuite run and its PR comment resilient #278
Merged
sylvestre added a commit that referenced this pull request Aug 24, 2026
@sylvestre
ci: make the GNU testsuite run and its PR comment resilient
584c405
GnuTests on #262 reported "PASSED: -8 / FAILED: +12" although the branch
changes nothing for the testsuite.
sylvestre added a commit that referenced this pull request Aug 24, 2026
@sylvestre
ci: make the GNU testsuite run and its PR comment resilient
7de61c5
GnuTests on #262 reported "PASSED: -8 / FAILED: +12" although the branch
changes nothing for the testsuite.
toggysmith and others added 3 commits August 24, 2026 22:56
@toggysmith @sylvestre
refactor: to have similar structure to uutils/coreutils
9166e15
This refactors the codebase to have a more similar structure to
uutils/coreutils.

Each of the utils have been moved into their own crates under
`src/uu` and shared code has been moved into the `src/uucore`
crate. Each util crate has a symlink to the licences in the
root of the repo.
@toggysmith @sylvestre
fix: add diffutils as default member
c42e8c7
@sylvestre
refactor: rename the shared crate to diffutils_core
bc9defb
The name `uucore` belongs to the shared crate of uutils/coreutils, so the
shared code of diffutils cannot use it. Rename the crate (and its
directory) to `diffutils_core`.

Also:
- drop the stray `src/uu/cmp/Cargo.lock` (workspace members share the
  root lockfile)
- add the LICENSE symlinks to the shared crate, like the util crates
- add `description`/`repository` metadata to the new crates
- move the root crate's test-only dependencies back to dev-dependencies

Claude-Session: https://claude.ai/code/session_01QK4eB5VFJ91FmZYFy3kphk
@sylvestre
sylvestre force-pushed the split-into-separate-crates branch from 17daa24 to bc9defb Compare August 24, 2026 20:56
@sylvestre

sylvestre commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

sorry but it needs to be rebased

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

sylvestre
sylvestre reviewed Oct 18, 2026
View reviewed changes
Comment thread Cargo.toml
[workspace.package]
categories = ["command-line-utilities"]
edition = "2021"
rust-version = "1.87.0"

@sylvestre sylvestre Oct 18, 2026

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where does 1.87.0 come from?
please do the MSRV in a separate pr

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
sylvestre
sylvestre reviewed Oct 18, 2026
View reviewed changes
Comment thread src/lib.rs
pub use unified_diff::diff as unified_diff;
pub use diffutils_core::*;
pub use uu_cmp as cmp;
pub use uu_diff::ed_diff;

@sylvestre sylvestre Oct 18, 2026

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

context_diff and side_by_side_diff are no longer exported, and normal_diff etc are now modules instead of functions.
not purely a refactor, is it intended?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
sylvestre
sylvestre reviewed Oct 18, 2026
View reviewed changes
Comment thread src/uu/diff/src/context_diff.rs
fn test_permutations() {
// test all possible six-line files.
let target = "target/context-diff/";
let target = "../../../target/context-diff/";

@sylvestre sylvestre Oct 18, 2026

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this breaks with CARGO_TARGET_DIR
could you please use a tempdir instead of ../../../target? (same in the other diff modules)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
sylvestre
sylvestre reviewed Oct 18, 2026
View reviewed changes
Comment thread src/uu/diff/src/context_diff.rs
.new()
.arg("-p0")
.arg("-d")
.arg(&format!("{target}"))

@sylvestre sylvestre Oct 18, 2026

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.arg(target) is enough, no?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@tats-u

tats-u commented Oct 23, 2026

Copy link
Copy Markdown

Does this fix #232?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre

sylvestre commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

sorry but it needs to be rebased

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre

sylvestre commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

this one has been stuck for a while without an update, closing it for now. feel free to reopen if you get back to it, thanks

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre sylvestre closed this Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@sylvestre sylvestre sylvestre left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@toggysmith @sylvestre @tats-u
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.