From b12407d727a68ad09b268e87e2e0eadb8805e5ba Mon Sep 17 00:00:00 2001 From: Ivan Ogasawara Date: Tue, 12 Dec 2023 19:49:25 -0400 Subject: [PATCH] add files again --- artwork/poc/favicon.svg | 7 +- artwork/poc/logo.svg | 5 +- docs/changelog.md | 163 +++++++++++++++++++++++++ docs/contributing.md | 158 ++++++++++++++++++++++++ docs/features.md | 87 +++++++++++++ docs/images/android-chrome-192x192.png | Bin 0 -> 8868 bytes docs/images/android-chrome-512x512.png | Bin 0 -> 37833 bytes docs/images/apple-touch-icon.png | Bin 0 -> 7941 bytes docs/images/favicon-16x16.png | Bin 0 -> 426 bytes docs/images/favicon-32x32.png | Bin 0 -> 858 bytes docs/images/favicon.ico | Bin 0 -> 15406 bytes docs/images/logo.png | Bin 0 -> 17314 bytes docs/images/site.webmanifest | 1 + docs/index.md | 1 + docs/installation.md | 45 +++++++ docs/template.md | 130 ++++++++++++++++++++ mkdocs.yaml | 2 +- 17 files changed, 595 insertions(+), 4 deletions(-) create mode 100644 docs/changelog.md create mode 100644 docs/contributing.md create mode 100644 docs/features.md create mode 100644 docs/images/android-chrome-192x192.png create mode 100644 docs/images/android-chrome-512x512.png create mode 100644 docs/images/apple-touch-icon.png create mode 100644 docs/images/favicon-16x16.png create mode 100644 docs/images/favicon-32x32.png create mode 100644 docs/images/favicon.ico create mode 100644 docs/images/logo.png create mode 100644 docs/images/site.webmanifest create mode 120000 docs/index.md create mode 100644 docs/installation.md create mode 100644 docs/template.md diff --git a/artwork/poc/favicon.svg b/artwork/poc/favicon.svg index 3ec08ba..36ed1de 100644 --- a/artwork/poc/favicon.svg +++ b/artwork/poc/favicon.svg @@ -41,7 +41,7 @@ style="fill:#000000;stroke-width:0.264583" id="path588-3" sodipodi:nodetypes="sssssssscssssccscccsssscssscscccscsssscccccssccccssssssssscccsscsccccsssccssssscssscsscsssssscsscscssssscccscccssscc" />= 3.8. + +## Tips + +To run a subset of tests:: + +``` +$ pytest tests.test_containers_sugar +``` + +## Release + +This project uses semantic-release in order to cut a new release +based on the commit-message. + +### Commit message format + +**semantic-release** uses the commit messages to determine the consumer +impact of changes in the codebase. Following formalized conventions for +commit messages, **semantic-release** automatically determines the next +[semantic version](https://semver.org) number, generates a changelog and +publishes the release. + +By default, **semantic-release** uses [Angular Commit Message +Conventions](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format). +The commit message format can be changed with the `preset` or `config` +options_ of the +[@semantic-release/commit-analyzer](https://github.com/semantic-release/commit-analyzer#options) +and +[@semantic-release/release-notes-generator](https://github.com/semantic-release/release-notes-generator#options) +plugins. + +Tools such as [commitizen](https://github.com/commitizen/cz-cli) or +[commitlint](https://github.com/conventional-changelog/commitlint) can +be used to help contributors and enforce valid commit messages. + +The table below shows which commit message gets you which release type +when `semantic-release` runs (using the default configuration): + +| Commit message | Release type | +|----------------------------------------------------------------|------------------| +| `fix(pencil): stop graphite breaking when pressure is applied` | Fix Release | +| `feat(pencil): add 'graphiteWidth' option` | Feature Release | +| `perf(pencil): remove graphiteWidth option` | Chore | +| `BREAKING CHANGE: The graphiteWidth option has been removed` | Breaking Release | + +source: + + +As this project uses the `squash and merge` strategy, ensure to apply +the commit message format to the PR's title. diff --git a/docs/features.md b/docs/features.md new file mode 100644 index 0000000..a7a282d --- /dev/null +++ b/docs/features.md @@ -0,0 +1,87 @@ +# Features + +## Attribute: working-directory + +The working-directory feature in Makim allows users to define the directory +from which commands associated with specific targets or groups are executed. +This provides greater flexibility and control over the execution environment. + +The `working-directory` attribute can be specified at three different +scopes: global, group, and target. It allows users to set the working +directory for a specific target, a group of targets, or globally. + +### Syntax and Scopes +The working-directory attribute can be applied to three different scopes: + +- #### **Global Scope** + Setting the global working directory impacts all targets and groups in + the Makim configuration. + + ```yaml + version: 1.0 + working-directory: /path/to/global/directory + + # ... other configuration ... + ``` + +- #### Group Scope + + Setting the working directory at the group scope affects all targets within + that group. + + ```yaml + + version: 1.0 + + groups: + my-group: + working-directory: /path/to/group/directory + targets: + target-1: + run: | + # This target will run with the working directory set to + # /path/to/group/directory + ``` + +- #### Target Scope + + Setting the working directory at the target scope allows for fine grained + control over individual targets. + + ```yaml + version: 1.0 + groups: + my-group: + targets: + my-target: + working-directory: /path/to/target/directory + run: | + # This target will run with the working directory set to + # /path/to/target/directory + ``` + +## Example + +```yaml +version: 1.0 +working-directory: /project-root + +groups: + backend: + working-directory: backend + targets: + build: + help: Build the backend services + working-directory: services + run: | + echo "Building backend services..." + # Additional build commands specific to the backend + + test: + help: Run backend tests + working-directory: tests + run: | + echo "Running backend tests..." + # Additional test commands specific to the backend + +``` diff --git a/docs/images/android-chrome-192x192.png b/docs/images/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..74b729c913ddac8a3236d8c536dafc727fc3e958 GIT binary patch literal 8868 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 IM6N<$f<@2ZZ2$lO literal 0 HcmV?d00001 diff --git a/docs/images/apple-touch-icon.png b/docs/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..93f059c098ae99ba2e44fd3d8c1b5d4dbe119a34 GIT binary patch literal 7941 zcmV+gANt^lP)Py8zez+vRCr$P-3PcWS5*h_KX#C+bfkAN^de0~iiIYE5-Flc?;V1GAWZ}`NN-XE zH58?H2%XS-4G9D=CJ+cAG^u{S=BA|qH^5C}KP$;All=Ey z%5b-f)4EKF>m>o^OC&jU0rN8A2WsZX>ytb=$p@2+Cde`pt?#=qb*>~gP4bt;Jf)52 z0rK{zqO~c*mnV6Ck`EW4pW^9vx(O45d2!n$*DqUyH)~bHTgMD}ZIUM@IbyfTt?Gv3 zbvly(oSZw!pBFGwimSp7+GTTHO zF`CTb1=J3UH1{}$Cjr2vjc=FaW=Vc+O<-;$1Jri*$CU%)7H*~id#0k9@1Df(T@9L= z`QeQN>hYl1mE>1*A7JM7`m3Uu&$?zXH?!tNdsUK06r0-lY)b<>1ahf3sPQkaW2@Lp ze2q>0=p-K>ZR*t^t%Iv@*K+CJGs(@9bOq+-(Kr~MP=2`dwg7EXw@-5K5qS0n5f%lMk~V#yZvK))Q!nOJ3qZdael7d z^Q`4lG&Mgp^W&4n$-b5wjTc=?0(NkRK1z@`tZU6YJ$ah>kR*q32?I3G#vdhlUWwkU z`ye<=lC}}vkB2Au{HUpCiL3MfhmYpG#m~I%1K_L&6nJ@Ak_RU_(&WV0Z5w~ngYCT2 zWceGtbu=~m=(8otIP1a2|L;ZuH1l7SZT>t-`rOeyF`C7fiw*y7fHuKLCAn1(HqdTM z0MsWW`Iq9-J9gxLbc5DC?gA^Q5VZ20i)X{3u!g}i=1}@_lRRINXC}F3MSvzG20x}1 zP_wDA^#FYw{Yb!0PU+nt$%R)ygIMKLz{-8$7@$!=|E>JF%A2g>S|)l-lBX3LAHYXY zuR^l(T?3f^B*|TqT&yrG=expsKMg1U#L@uhYbSYjiNUY;wu@c80rg|bi-#LKj_xEN zVvGjyz!FKW#mtzN044YDv@}4oi5^*O>F&fd-<=r#D1;7)4vQnG=ab)}pZ?_}e^3G^ zSEx`kH_rvoNK3Z^==&7=gD0o1Zz9$VH4ezbrG!L5oT1@3oJklH3@epIS)#4F4evj`TMa zrq#R0z{|>)j3!1QzE|PH|59b%uiYM)^Wc^M&BO7B#mBgE>8$C3LgfEZcpsk|L*y%y zGB8VkrkQ0bv7v`DBxT>%)bNt|>a1aV8Q==(UF+{O^9R(VoKU0V%Xrx0OP2dIRL&RvzO`N@w)}F8VmL;Tp z(aQK4v!CF=PkaMC!b2(7Wt)+PHRQoZ&3poC2i;SoxDWZ^)-ZR4U+~~jho#*Oef{z1 z4+CgiQU`+CBSCG}v$s!jjAG630l#s)}kha9uYm|yui^#dQ@2G|MI)LW-QaQBiOz(9HgbmF{{rEy^ zYE`*%ofE3$+D#PjeuY6dgphVy(E;?E0UF6i-MUQzG$D9VpIb6sm{t27)WFP}1Jsaui*6!-(`{Tg^-PRcStLQ{8c2t>4bUp6>?ClK=n z426I)??XBi%1u=3Ln;?v<$fD>-gB0c1MKE5O1$+UV}L#apw$WEgWfa^-3S$^`PvnQ zM8w)pJZfv|z^_c#9ZUVWO9fO$IapcyU#%RNPO+(@j4l+I9c9aqI zb#!m;rURNVJhZk3KrKg+=HA4?9rxQw9+2d!#iZQC=bU~fYx`*+rl~f~Ww+Pjsmk=9 zg>ou6VAC`;%`AONmi7>N?u)*7cHl`VFo&l7pq(2*HErkcs4?_(a$qOT;f^eNtr{WO@)#{e`ta^7}Zn;
Hs_B1M}qTjT$ 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 UbTeD&+yDRo07*qoM6N<$f_|I7-v9sr literal 0 HcmV?d00001 diff --git a/docs/images/favicon-32x32.png b/docs/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..27c1ca5e43aa107aa8d4abf16abc97600ded95f0 GIT binary patch literal 858 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%0DdtsUenak#0eTW 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 literal 0 HcmV?d00001 diff --git a/docs/images/site.webmanifest b/docs/images/site.webmanifest new file mode 100644 index 0000000..1dd9112 --- /dev/null +++ b/docs/images/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} diff --git a/docs/index.md b/docs/index.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/docs/index.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..5242a36 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,45 @@ +# Installation + +## Stable release + +To install makim, run this command in your +terminal: + +```bash +$ pip install makim +``` + +This is the preferred method to install makim, +as it will always install the most recent stable release. + +If you don't have [pip](https://pip.pypa.io) installed, this +[Python installation guide](http://docs.python-guide.org/en/latest/starting/installation/) +can guide you through the process. + +## From sources + +The sources for makim can be downloaded from +the [Github repo](https://github.com/osl-incubator/makim.git). + +You can either clone the public repository: + +```bash +$ git clone https://github.com/osl-incubator/makim.git +``` + +Or download the +[tarball](https://github.com/osl-incubator/makim.git/tarball/main): + +```bash +$ curl -OJL https://github.com/osl-incubator/makim.git/tarball/main +``` + +Once you have a copy of the source, change to the project root directory +and install it with: + +```bash +$ poetry install +``` + +PS: You need to have poetry installed. You can use it also from a conda +environment. Check the `Contributing` page for more information. diff --git a/docs/template.md b/docs/template.md new file mode 100644 index 0000000..daae746 --- /dev/null +++ b/docs/template.md @@ -0,0 +1,130 @@ +# Makim Template + +**Makim** config files are powered by the Jinja2 template engine, allowing +you to use Jinja2 tags for added flexibility in your Makim config files. + +This page focuses on explaining the options offered directly by **Makim**, +rather than covering all the possibilities with Jinja2. + +**Makim** provides three different variable options that can be combined: +`vars`, `env`, and `args`. + +Additionally, the `env` and `vars` option has three different scopes: +**global**, **group**, and **target**. +We will discuss each of them in the following sections. + +## Variables Scopes + +Before delving into the different variable options, let's discuss `env` +and `vars` scope, as it is essential for the subsequent sections. +The `args` attribute just works in the *target* scope. + +As mentioned earlier, **Makim** `env` and `vars` has three scopes: +**global**, **group**, and **target**. + +The order of their rendering is crucial. First, the *global* scope is processed. +In the *group* scope, any variable defined globally is accessible via the `env` +variable (e.g., `{% raw %}{{ env.my_global_env }}{% endraw %}`). +However, any variable defined in the *global* scope will be overridden by a +variable with the same name in the *group* scope. The same applies to the +*target* scope, where any variable defined in the *global* or *group* scope +will be overridden by a variable defined in the *target* scope. + +Moreover, `env` is a bit more complex, as its value can be defined in two +different ways: either through the `env` attribute in the `.makim.yaml` +file or from an environment file specified in the `env-file` attribute. +First, the `env-file` is loaded into memory, and then the variables +defined in the `env` attribute are loaded. In other words, any variable +defined in the file for the given `env-file` will be overridden by a +variable of the same name defined in the `env` attribute. This process +also respects the order of scopes. + +PS: **Makim** utilizes system environment variables as the initial scope for +the variables. + +## Different Variable Options + +**Makim** offers three variable options within the `makim` config file: +`env`, `vars`, and `args`. + +* `args` allows users to pass parameters via the CLI (command line interface). +It can also be used for target dependencies when parameters need to be passed +to the dependency. However, this option is not available in the system context +(the commands executed defined by `run` attribute), it is only accessible +within the Makim config file. +* `vars` is a convenient way to define reusable variables in the code. For +example, if you frequently use a command in the `run` section, you can define +a variable inside `vars` to make the Makim file more readable. Like `args`, +this option is not available in the system context; it is only accessible +within the Makim config file. +* `env` is used to define environment variables. Any environment variable can +be accessed via the `env` variable in the template (e.g., +`{% raw %}{{ env.myenvvar }}{% endraw %}`) or directly as an environment +variable within the `run` section, as shown in the example below: + +```yaml +... +groups: + group1: + targets: + target1: + ... + env: + MYVAR: 1 + run: | + echo $MYENV +``` + +## Order of Variable Rendering + +One crucial point to keep in mind is the order of variable rendering +within the Makim config file. + +`vars` is primarily used for `run` section, so they have the lowest +precedence. In another word, you can use `env` or `arg` to create +`vars`, but not the opposite way. + +`env` however, can be defined also in the system scope, so it has the +highest rank in the precedence. So, you shouldn't define a `env` that +depends on a variable defined by `vars` or `args`. If you need to set +your environment variable with a value from a `vars` or `args`, you +should do it in the `run` section. + +In the following example, it shows a correct way to use all the +different options of variables, respecting the scopes and rendering order: + +```yaml +... +env: + MY_GLOBAL_ENV: 1 +vars: + MY_GLOBAL_VAR: "my global env is {% raw %}{{ env.MY_GLOBAL_ENV }}{% endraw %}" + +groups: + group1: + help: "group" + env: + MY_GROUP_ENV: 2 + vars: + MY_GROUP_VAR: "my group env is {% raw %}{{ env.MY_GROUP_ENV }}{% endraw %}" + targets: + target1: + help: "target 1" + env: + MY_TARGET_ENV: 3 + args: + my-target-arg: + help: "target arg" + type: string + default: "{% raw %}{{ env.MY_TARGET_ENV }}{% endraw %}" + vars: + MY_TARGET_VAR: "my group env is {% raw %}{{ env.MY_GROUP_ENV }}{% endraw %}" + run: | + echo "{% raw %}{{ env.MY_GLOBAL_ENV}}{% endraw %}" + echo "{% raw %}{{ env.MY_GLOBAL_VAR}}{% endraw %}" + echo "{% raw %}{{ env.MY_GROUP_ENV}}{% endraw %}" + echo "{% raw %}{{ env.MY_GROUP_VAR}}{% endraw %}" + echo "{% raw %}{{ env.MY_TARGET_ENV}}{% endraw %}" + echo "{% raw %}{{ env.MY_TARGET_VAR}}{% endraw %}" + echo "{% raw %}{{ env.my_target_arg}}{% endraw %}" +``` diff --git a/mkdocs.yaml b/mkdocs.yaml index 88b73c2..2b1788a 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -2,7 +2,7 @@ site_name: Makim site_url: https://osl-incubator.github.io/makim repo_url: https://github.com/osl-incubator/makim.git docs_dir: ./docs -site_dir: .build +site_dir: ./build # extra_css: # - stylesheets/extra.css theme: