doc
This commit is contained in:
parent
1f39847a23
commit
dfeecd4db2
2 changed files with 27 additions and 19 deletions
26
README.md
26
README.md
|
|
@ -796,6 +796,32 @@ handling of the SIGPIPE. This can be done by setting
|
||||||
|
|
||||||
## [Developing Babashka](doc/dev.md)
|
## [Developing Babashka](doc/dev.md)
|
||||||
|
|
||||||
|
## Including new libraries or classes
|
||||||
|
|
||||||
|
Before new libraries or classes go into the standardly distributed babashka
|
||||||
|
binary, these evaluation criteria are considered:
|
||||||
|
|
||||||
|
- The library or class is useful for general purpose scripting or accomplishing
|
||||||
|
small devops tasks.
|
||||||
|
- Adding the library or class would make babashka more compatible with Clojure
|
||||||
|
libraries relevant to scripting or small devops tasks.
|
||||||
|
- The functionality can't be met by shelling out to another CLI or can't be
|
||||||
|
written as a small layer over an existing CLI (like `babashka.curl`) instead.
|
||||||
|
|
||||||
|
If not all of the criteria are met, but adding a feature is still useful to a
|
||||||
|
particular company or niche, adding it behind a feature flag is still a
|
||||||
|
possibility. This is currently the case for `next.jdbc` and the `PostgresQL` and
|
||||||
|
`HSQLDB` database drivers. Companies interested in these features can compile an
|
||||||
|
instance of babashka for their internal use. Companies are also free to make
|
||||||
|
forks of babashka and include their own internal librries. Or if their
|
||||||
|
customized babashka is interesting to share with the world, they are free to
|
||||||
|
distribute it using a different binary name (like `bb-sql`, `bb-docker`,
|
||||||
|
`bb-yourcompany`, etc.). See the [feature flag
|
||||||
|
documentation](doc/build.md#feature-flags) and the implementation of the
|
||||||
|
existing feature flags ([example
|
||||||
|
commit](https://github.com/borkdude/babashka/commit/02c7c51ad4b2b1ab9aa95c26a74448b138fe6659))
|
||||||
|
how to customize babashka.
|
||||||
|
|
||||||
## Related projects
|
## Related projects
|
||||||
|
|
||||||
- [planck](https://planck-repl.org/)
|
- [planck](https://planck-repl.org/)
|
||||||
|
|
|
||||||
20
doc/dev.md
20
doc/dev.md
|
|
@ -20,25 +20,7 @@ $ git submodule update --recursive
|
||||||
|
|
||||||
`lein repl` will get you a standard REPL/nREPL connection. To work on tests use `lein with-profiles +test repl`.
|
`lein repl` will get you a standard REPL/nREPL connection. To work on tests use `lein with-profiles +test repl`.
|
||||||
|
|
||||||
## Adding libraries and classes
|
## Adding classes
|
||||||
|
|
||||||
When adding libraries and classes to babashka, consider these evaluation
|
|
||||||
criteria:
|
|
||||||
|
|
||||||
- The library or class is useful for general purpose scripting or accomplishing
|
|
||||||
small devops tasks.
|
|
||||||
- Adding the library or class would make babashka more compatible with Clojure
|
|
||||||
libraries relevant to scripting or small devops tasks.
|
|
||||||
- The functionality can't be met by shelling out to another CLI or can't be
|
|
||||||
written as a small layer over an existing CLI (like `babashka.curl`) instead.
|
|
||||||
|
|
||||||
If not all of the criteria are met, but adding a feature is still useful to a
|
|
||||||
particular company or niche audience, adding it behind a feature flag is still a
|
|
||||||
possibility. This is currently the case for `next.jdbc` and the `PostgresQL` and
|
|
||||||
`HSQLDB` database drivers. Companies interested in these features can compile an
|
|
||||||
instance of babashka for their internal use.
|
|
||||||
|
|
||||||
### Adding classes
|
|
||||||
|
|
||||||
Add necessary classes to `babashka/impl/classes.clj`. For every addition, write
|
Add necessary classes to `babashka/impl/classes.clj`. For every addition, write
|
||||||
a unit test, so it's clear why it is added and removing it will break the
|
a unit test, so it's clear why it is added and removing it will break the
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue