Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
$ bake — a s☿rangely familiar workflow utlity.
~ under development ~
$ cat Bakefile $ bake install install: install/node install/python + Executing install/node: echo 'All ready!' | yarn install v1.17.3 install/full: install/system install | info No lockfile found. install/python: @skip:key=Pipfile.lock | [1/4] Resolving packages... pipenv install | [2/4] Fetching packages... install/node: @skip:key=yarn.lock | [3/4] Linking dependencies... yarn install | [4/4] Building fresh packages... install/system: @confirm | success Saved lockfile. brew install pipenv yarn | Done in 0.05s. + Executing install/python: python/format: | Installing dependencies from … black . + Executing install: | All ready! utils/argv: + Done. set -u && echo "$HELLO: $@" Rinse and repeat… utils/deploy: @confirm:secure exit 0
Bakefile
, which looks and feels like the good parts of a Makefile
.bash
code! Any and all syntax is accepted — no magic going on here. ;)Makefile
, you may utilize
[ 4 × U+0020 a.k.a. “spaces”
] for indentation.--allow
), not inherited from the parent shell.I love using Makefile
for one-off tasks in projects.
The problem with doing this is that you can't use familiar bash–isms when doing so, as GNU Make doesn't use the familiar Bash syntax, nor does it allow for simple ad–hoc use of arbitrary scripting languages (e.g. Python).
project seeks to bridge all of these worlds into a single entrypoint — ideal for cross–language repositories
bake
— (for local development workflows)*
nix Distributions (Python 3.6+):The primary installation method of bake
, today, is via pip
:
$ pip3 install bake-cli
Collecting bake-cli
…
Successfully installed bake-cli-0.2.0 delegator.py-0.1.1 pexpect-4.7.0 ptyprocess-0.6.0
This will always work, but it will not be the default recommendation.
Installation of bake
will (soon) be very easy, with Homebrew. The formula needs a subtle adjustment — if you want to help, here's the repo!
$ brew install kennethreitz/-/bake
==> Installing bake from kennethreitz/-
…
🍺 /usr/local/Cellar/bake/19-09-16: 1,563 files, 16.7MB, built in 11 seconds
Homebrew will be the primary installation target of bake
.
✨🍰✨
bake
— (for production workflows)You an also run bake
via Docker! An official image has been made available on DockerHub:
$ docker run kennethreitz/bake Wed Sep 18 10:11:01 2019
No Bakefile found!
Usage: [OPTIONS] [TASK] [ARGUMENTS]...
$ bake — the strangely familiar task–runner.
Options:
-b, --bakefile PATH The Bakefile to use.
-l, --list Lists available tasks (and their dependencies).
-h, --help Show this message and exit.
--allow TEXT Whitelist an environment variable for use.
--no-deps Do not run dependent tasks.
--yes Set medium–security prompts to yes.
--continue Continue, if a task fails.
-i, --interactive Run in interactive mode.
--insecure Inherit parent shell's environment variables.
-s, --silent Reduce output.
-e, --environ-json TEXT Provide environment variables via JSON.
-j, --json Output in JSON format (stdout).
Bakefile
is expected to live at /app/Bakefile
.ONBUILD
directives will automatically copy your application code (build context) into the container, into /app
.Bonus Points: this image is also available on the GitHub Package Registry (beta).
You can use bake
to bootstrap your team's development environments, ensuring a smooth and optimal workflow & local development experience.
Here's an example, using the Bakefile
provided above:
$ bake install
+ Executing install/node:
| yarn install v1.17.3
| info No lockfile found.
| [1/4] Resolving packages...
| [2/4] Fetching packages...
| [3/4] Linking dependencies...
| [4/4] Building fresh packages...
| success Saved lockfile.
| Done in 0.05s.
+ Executing install/python:
| Installing dependencies from Pipfile.lock (f10bb0)…
+ Executing install:
+ Done.
Because we configured yarn.lock
and Pipfile.lock
as cache keys,
bake will automatically skip the configured steps— only running them
when the files are changed!
So, let's run that command again :)
$ bake install
+ Skipping install/node:
+ Skipping install/python.
+ Executing install:
+ Done.
Neat, eh?
$ bake utils/argv KEY=VALUES 1 2 3
+ Executing utils/argv:
| VALUES: 1 2 3
+ Done.
$ bake utils/deploy
What is 10 times 2?: 7
Aborted.
Bakefile
— adequately.
This open source software has been designed, for you, with much joy, by the hands of:
☿
FAQs
The familar Make / Bash hybrid.
We found that bake-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.