Skip to content

refactor(just)!: move to directory with flat recipes - #39

Closed
retr0h wants to merge 1 commit into
mainfrom
refactor/just-module-flat
Closed

refactor(just)!: move to directory with flat recipes#39
retr0h wants to merge 1 commit into
mainfrom
refactor/just-module-flat

Conversation

@retr0h

@retr0h retr0h commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Converts the just module to the pattern established by md in #37: its own
directory with its own README, consumed via import? with flat prefixed
recipes instead of mod? with :: namespacing.

just/
├── just.just     recipes (just-fmt, just-fmt-check)
└── README.md     usage, recipes, requirements, exclusions
just.mod.just     removed

The :: namespacing bought nothing. Prefixed names read better at the call
site (just just-fmt-check), and dropping the shim removes the
working-directory indirection — the same indirection that made docs.mod.just
unusable in repos without a docs/ directory.

Breaking change

Consumers must change:

mod just '.just/remote/just.mod.just'
just just::fmt-check

to:

import? '.just/remote/just.just'
just just-fmt-check

and update the fetch URL to main/just/just.just, dropping the
just.mod.just fetch entirely.

Affected repos: gohai, osapi, nats-client, nats-server — each uses
mod just plus just just::fmt-check in just-lint.yml. These will fail
their Just Lint job until ported.

In-repo updates

  • justfile now uses import 'just/just.just' and dogfoods the flat names
  • .github/workflows/just-lint.yml runs just just-fmt-check directly,
    replacing just --justfile just.just --working-directory . fmt-check
  • Root README gains a just row in the module table; the inline
    ### just.just section is removed
  • CLAUDE.md Repository Structure updated

Testing

  • just test (self-lint) passes — the repo formats its own justfiles through
    the converted module
  • Verified the check still catches nested violations: deliberately corrupting
    just/just.just gives exit 1, restoring gives exit 0
  • just/README.md is stable under md-fmt-check

Follow-up

Two modules now live in directories (md, just); go, bats, docs,
docker, and react remain at the root in mod? style and are still
documented inline in the root README.

🤖 Generated with Claude Code

Convert the just module to the pattern established by md: its own
directory with its own README, consumed via `import?` with flat
prefixed recipes rather than `mod?` with `::` namespacing.

The `::` namespacing bought nothing here. Prefixed recipe names read
better at the call site (`just just-fmt-check`), and dropping the shim
removes the working-directory indirection that made modules awkward to
reason about.

BREAKING CHANGE: `just.just` moved to `just/just.just` and
`just.mod.just` is removed. Recipes `fmt` and `fmt-check` are now
`just-fmt` and `just-fmt-check`. Consumers must change

    mod just '.just/remote/just.mod.just'
    just just::fmt-check

to

    import? '.just/remote/just.just'
    just just-fmt-check

and update the fetch URL to main/just/just.just, dropping the
just.mod.just fetch entirely.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Thank you for contributing to this project! 😊🕹️

@retr0h

retr0h commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

Superseded — redone against current main. This branch predates the */.just/* exclusion added since, so merging it would regress the fix that stops the linter walking fetched modules.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant