Adhoc shell scripting đź™…
Shell scripting library 🙂‍↕️

Just about every project—Apache, CNCF, or just randomly found on
GitHub—tells the user; e.g., in a getting-started guide; how to setup
their development environment and how to run the compiled—or
precompiled—package.

Unfortunately, this is usually limited to one operating system [Linux]
and of that, one distribution [Debian based, often just Ubuntu]. The
popularity of Docker over the past decade has made this problem worse,
with a `docker run` command being the new most-popular getting-started
guide.

This makes it more difficult to: port to alternative Linux
distributions (e.g., musl-based Alpine); run on non Linux OSs (macOS;
FreeBSD; SunOS; *gasp* Windows; and others); and experiment [e.g., for
security or performance benchmarking purposes] with the Docker
alternatives each platform offers.

Penultimately, the ability to mix-and-match aaS [e.g., DBaaS] with
self-hosted is usually lost the closer one gets to a "one click
install".

Finally, even when Docker is the target, taken away from the casual
developer is the decision of having: one monolithic image; an image
per database/toolchain/server; or some middle-ground.

I've started implementing a proof-of-concept at
https://github.com/SamuelMarks/deploy-sh
It should work out-of-the-box with Linux (Alpine, Debian-based, more
soon), macOS; with FreeBSD, SunOS, and Windows coming-soon.

I also implemented a little JSON DSL with a code-generator, all in
/bin/sh, that creates: guarded shell scripts that install either
serially or in parallel; and `Dockerfile`s.

The medium-term vision is that all projects on Apache could be
supported with simple human-readable JSON files they have in their
repository root; enabling most to trivially support various Linux
distributions, lightweight Docker images, FreeBSD & OpenBSD, macOS,
and even Windows.

Would be great to contribute this to the Apache—or a
similar—Foundation, as it applies to every project in its ecosystem,
would benefit [microsoft/vcpkg ports style] from a large number of
external contributors, and importantly: would improve both the
development environment and operational environment setup experience.

Thanks for your consideration,

Samuel Marks

PS: As for the current state, probably another month of development
required before it's properly functional. Want to get through that
roadmap first and also have some nice examples of complex open-source
deployments; ones that require multiple: databases, servers,
toolchains. But thought it would still be good to post now to get
early feedback. Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to