The Wall Brew Open Source Guidelines encourage a seamless and consistent developer experience. While we often think about the work required to provide the tools, documentation, and automation behind that experience; we would do ourselves a disservice to ignore the cost of maintaining these files across a growing number of repositories. To prevent individual repositories from falling out of sync, rebroadcast was established to be the primary source of truth for these files. This requires a degree of standardization across repositories, including the use of the following tools which back the capabilities replicated by rebroadcast. The below tools are automatically enabled in our CI/CD, and do not strictly require installation.
Since all Wall Brew repositories are hosted on GitHub, we have adopted GitHub Actions for our CI/CD needs:
cljstyle is used to automatically format all clojure(script) code at Wall Brew. Further, each application uses the same cljstyle configuration to maintain as consistent of a look and feel as possible. While the configuration is minimal, rebroadcasting the file minimizes the cost of any future extension or change. Generally, the configuration should only ever change if it would break or interfere with other developer tools.
Our GitHub actions will automatically apply this formatting against commits in open pull requests. We recommend pulling these changes back to your local branch before continuing with further development. If you wish to run the formatter locally, you can follow their installation guide.
clj-kondo is used as the primary linting too for clojure(script) code at Wall Brew. Aside from a few special rules and hooks, most applications and all libraries, are generally able to leverage the same linter configuration. The configuration is designed to cleanly integrate with code quality tools, and to push developers towards consistent coding standards. Pull requests against Wall Brew repositories will report any linter violations to the author in pull request comments.
Many language-aware editors and editor plugins have adopted clj-kondo as the default linter for clojure. If your IDE does not have this option, you can use the leiningen plugin.
Sealog is the default changelog management tool used at Wall Brew. All applications and libraries are able to leverage the same changelog configuration. The configuration is designed to enforce consistent Changelog and versioning standards. Prior to merging a releasable pull request, the author or a Wall Brew maintainer should increment the version, log notable changes, and regenerate the changelog.
Wall Brew currently uses Renovate to manage dependency updates.
The default configuration is language agnostic, and is therefore available on every repository.
It will automatically check for and submit pull requests for outdated libraries and tools.
The Renovate configuration will also update the jobs in our GitHub Action Workflows defined in rebroadcast
.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close