Report REMS technical layers
- Dominant language
- Clojure
- Stars
- 66
- Forks
- 28
- Avg merge
- 7d 4h
- Merged PRs (30d)
- 2
Description
Automatically create a report that contains a list of REMS namespaces, functions grouped into technical layers (API, service, DB, SQL).
Helpful for #2971, #2179, #3018
See also https://github.com/CSCfi/rems/blob/master/docs/architecture/012-layers.md
More ideas:
- [x] implement tool to draw graph
- [ ] drop `graphviz` and use simple own?
- [ ] automate running of the tool each build
- [ ] have CLI version
- [ ] autogenerate relevant documentation under `docs`
- [ ] break build if architecture rules are broken (add possible exceptions to test file)
- [ ] update [ADR 012](https://github.com/CSCfi/rems/blob/master/docs/architecture/012-layers.md) with the information and changes
Easy refactoring tasks:
- [ ] `rems.cli` namespace for client utilities, use from `rems.standalone`
- [x] rename `rems.standalone` to `rems.main`? At least fix the docstring. #3092
- [x] rename `rems.api.services` to `rems.service` (it's not just for API) #3093
- [x] rename `rems.db.test-data` to `rems.service.test-data` as the layer seems to be more correct (pretty high-level helpers) #3094
- [x] rename `rems.db.fix-userid` to `rems.service.fix-userid` as it really is a service that does many db things with helpers #3151
- [x] merge `rems.entitlements` into `rems.api.entitlements` #3095
- [x] `rems.entitlements` should use `:roles #{:logged-in}` instead of `check-user` #3095
Contributor guide
Assessment
This issue has not been assessed yet.