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 — Breaking: Adapt coreutils dev file structure by GunterSchmidt · Pull Request #201 · uutils/diffutils

Conversation

@GunterSchmidt

@GunterSchmidt GunterSchmidt commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

Adapting the project structure to the coreutils structure.

coreutils uses a source code tree, which has each tool in a separate dir unter /uu,
a separate library tree and the main file under /bin. Also a number of features are
available in another directory.

Adaptiong this structure allows more usage of the coreutils macros
and methods. It makes it easier for the developers to navigate when
working in both projects.

Each utility can now be opened standalone
which makes it also easier to test and benchmark.

Since it is a file location restructure, the commit is containing
a lot of files. All files were left unchanged as much as
possible and mostly the import locations were
changed.

Changes:

  • A workspace is introduced, currently with the members
    uudiff (library) and the utilities uu/cmp and uu/diff.
  • main.rs is now /bin/diffutils.rs
  • the uumain method is now used as entry point to the utility
  • all utilites have a separate folder under /uu
  • Exitcodes are now i32 and push to
  • coreutils only has License files for MIT
  • args are now read by using uucore::args_os()
  • context_diff and unified_diff now use TempDir
  • benches are separated for each utility and
    have centralized support functions

Issues:

  • The uucore::bin! macro needs to be implemented
    for all main functions. Currently missing
    internationalization.
  • Tests must be run with "cargo test --workspace".
  • Unclear, if features can be defined globally.
  • Clarification of the Licenses needed.

Sorry, something went wrong.

Uh oh!

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

All reactions
Gunter Schmidt and others added 3 commits March 12, 2026 22:31
Gunter Schmidt
Breaking: Adapting the project structure to the
6506663
coreutils structure.

This allows more usage of the coreutils macros
and is easier for the developers if working in
both projects.

Each utility can now be opened standalone
which makes it also easier to test and benchmark.

Since it is a restructure, the commit is containing
a lot of files. All files were kept as much as
possible and mostly the import locations were
changed.

Changes:
* a workspace was introduced
* main.rs is now /bin/diffutils.rs
* uumain is now used as start of utility
* all utilites have a separate folder under /uu
* Exitcodes are now i32 and push to
* coreutils only has License files for MIT
* args are now read by using uucore::args_os()
* context_diff and unified_diff now use TempDir
* benches are separated for each utility and
  have centralized support functions

Issues:
* The uucore::bin! macro needs to be implemented
  for all main functions. Currently missing
  internationalization.
* Tests must be run with "cargo test --workspace".
* Unclear, if features can be defined globally.
Gunter Schmidt
removed local dir
d6eef8c
@GunterSchmidt
Merge branch 'uutils:main' into adapt_coreutils_structure
1fe9cf2
@sylvestre

sylvestre commented Mar 12, 2026

Copy link
Copy Markdown
Collaborator

very nice, thanks

GunterSchmidt reacted with laugh emoji
All reactions
  • 😄 1 reaction

Sorry, something went wrong.

Uh oh!

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

@GunterSchmidt

GunterSchmidt commented Mar 13, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor Author

This is my view on what are the next steps:

  1. I had two failing tests.
    • codspeed: I used the structure of coreutils to now run benchmarks for every tool.
    • dist:
      • updated dist to 0.31
      • dist requires all workspace repositories to point to the same url,
        so we cannot have a different repository for each utility, which
        does not match coreutils setup.
        This needs to be verified, maybe there is another solution.
  2. Clean up existing PRs:
    • PR stdin: Handle directory input #73: Not sure what to do with it. Seems old and half baked, probably needs to be reworked. Description of issue could be more elaborate.
    • PR chore(deps): update github artifact actions (major) #144 and PR chore(deps): update actions/checkout action to v6 #145: Discard. Small changes, now also incorporated in this PR Breaking: Adapt coreutils dev file structure #201.
    • PR sdiff initial implementation #159, cmp Feat: change data type for 'bytes' limit and 'ignore initial' to u64 #183 and Feat sdiff inital with parser #193: Discard. I have merged and adapted both into Feat sdiff inital with parser #193 and gladly provide a new PR after Breaking: Adapt coreutils dev file structure #201 has been merged.
    • PR cmp Feat: change data type for 'bytes' limit and 'ignore initial' to u64 #183: Few changes, probably easier to merge Breaking: Adapt coreutils dev file structure #201 first, then I can update the PR cmp Feat: change data type for 'bytes' limit and 'ignore initial' to u64 #183.
    • PR SIGPIPE panics #192: Merge first, then Breaking: Adapt coreutils dev file structure #201.

So my suggestion in short: Merge #192 first, then #201. Then fix test errors and go from there.

All reactions

Sorry, something went wrong.

Uh oh!

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

Gunter Schmidt and others added 6 commits March 14, 2026 06:46
Gunter Schmidt
fix: cargo fmt --all -- --check
cf8cdad
Gunter Schmidt
try fixing benchmarks
b08018f
Gunter Schmidt
fix: benchmarks
77dd93b
* fix prg name and parameters
* added feature to enable some benches as they should not run during github checks
Gunter Schmidt
try fix github check release
90035ea
The tool dist does not allow different repository names within the workspace.
Gunter Schmidt
update chore(deps)
ad9b2ee
* Replaces PR uutils#144 and PR uutils#145
@GunterSchmidt
Merge branch 'uutils:main' into adapt_coreutils_structure
b70a105
@GunterSchmidt GunterSchmidt mentioned this pull request Mar 29, 2026
Breaking: Adapt coreutils dev file structure V2 #206
Closed
@GunterSchmidt

GunterSchmidt commented Mar 29, 2026

Copy link
Copy Markdown
Contributor Author

Replaced by PR #206

All reactions

Sorry, something went wrong.

Uh oh!

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

@GunterSchmidt GunterSchmidt closed this Mar 29, 2026
@codecov

codecov Bot commented Mar 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (23890b6) to head (b70a105).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff     @@
##   main   #201   +/-   ##
===========================
===========================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
All reactions

Sorry, something went wrong.

Uh oh!

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

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.

2 participants

@GunterSchmidt @sylvestre
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 01402503 — 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.