- This diagram was really old and didn't reflect the current practices
(a lot more things are automated now, hurray).
- Anything we replace it with will get outdated fast too.
- Also delete the diagramming docs since I don't believe we have made
another diagram since this one which got out of date and forgotten
about since it was a DrawIO SVG and not easily editable as code.
- If we want diagrams these days, we can use Mermaid which is
diagrams-as-code.
Now the output of commands like `brew info --json=` and
`brew generate-formula-api` should be the same as before along with
the additional files for the internal API. Before this commit the
hash key order had changed.
- move caveats serialization to a method
- remove unnecessary nesting where the hash would only have one key
Also, removed comment about checking disable and deprecation reasons.
This adds the code to generate the homebrew-core.json file which
represents the entire tap instead of just the previous array of
formula hashes. Any shared logic has been moved into the top-level
hash scope including aliases, renames, tap_git_head and tap_migrations.
I also added a check to skip adding the variations hash to the api
hash if it is empty.
Now we're down to 10MB from 24MB!!!
Note: This changes where the "head_dependencies" key in the hash
shows up but not the hash's contents.
"head_dependencies" now shows up directly after all of the other
dependency keys. Before it was always at the end of the hash after
variations.
This will be used internally to generate a slimmer api hash representation
of formulas that will require less space and be faster to load.
Changes:
- Added #to_api_hash
- Modified #to_hash_with_variations to work with both #to_hash and #to_api_hash
- Modified #bottle_hash to have compact representation for the api hash
- Added #urls_hash to share url hash generation logic between the hash methods
- Use `macos-14` instead of `macos-13` most of the time.
- For `tests` and `test default formula` builds: run on both
macOS 13 x86_64 and macOS 14 arm64
- Pretend `macos-14` is a self-hosted runner until a new version of
`actionlint` is released which doesn't error on `macos-14`.
Basically, this started failing for me on my personal tap because
there are some methods defined at the top-level in my Rakefile.
That seems acceptable to me and since we're already ignoring all
other Ruby files in the tap I figured we might as well just ignore
all of them.
I ended up changing one other use of `Taps/**/*.rb` to `Taps/**/*.rb`
as well.
- We don't need this blanket enabled, we only have a few docs where it actually matters that there's a description, it's just cruft having to invent descriptions.