From eee8ced1592b8037ba68fe99a31f0c57c77a61fe Mon Sep 17 00:00:00 2001 From: thomvaill <8985674+thomvaill@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:14:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20536e6?= =?UTF-8?q?48995d20cf8c9b43c2d0b95ab25d151ffb5=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adr/404.html | 20 +- adr/404/index.html | 20 +- ...rkdown-architectural-decision-records.json | 2 +- ...ure-in-a-monorepo-with-yarn-and-lerna.json | 2 +- ...tier-eslint-airbnb-for-the-code-style.json | 2 +- ...6-use-the-adr-number-as-its-unique-id.json | 2 +- .../adr/20200927-avoid-default-exports.json | 2 +- ...016-use-the-adr-slug-as-its-unique-id.json | 2 +- ...ancing-the-adr-markdown-body-with-mdx.json | 2 +- .../adr/20201103-use-lunr-for-search.json | 2 +- ...te-log4brains-as-a-global-npm-package.json | 2 +- ...926-transition-to-simplified-git-flow.json | 1 + .../20241217-switch-back-to-github-flow.json | 1 + ...architecture-and-ddd-for-the-core-api.json | 2 +- ...arkdown-parsing-is-part-of-the-domain.json | 2 +- ...01027-adr-link-resolver-in-the-domain.json | 2 +- ...use-nextjs-for-static-site-generation.json | 2 +- ...t-file-structure-organized-by-feature.json | 2 +- .../adr/web/20200927-avoid-react-fc-type.json | 2 +- .../adr/web/20200927-use-react-hooks.json | 2 +- ...007-next-js-persistent-layout-pattern.json | 2 +- .../index.json | 2 +- ...926-transition-to-simplified-git-flow.json | 1 - .../5_fT0tt-Z_QtKwGblXfgp/_buildManifest.js | 1 + .../_ssgManifest.js | 0 .../7xFMxN3EfFtzL5yajT5sc/_buildManifest.js | 1 - .../chunks/364bddfb.28847971f0e02b167249.js | 1 + ...9982e0011fc76b6c1e.6868553c766a0e95aa6f.js | 1 + ...18.js => 3b07cb59.4f0af644828e83722dc4.js} | 2 +- ...50.js => 3da477db.e49cd5277ed36ace32c1.js} | 2 +- ...782e4a432ad4da6771.064ca2339afb25745cbe.js | 1 + ...782e4a432ad4da6771.45cd41bc0da33630d641.js | 1 - .../chunks/7ede4f97.b879b9f12f9bd2413581.js | 1 - .../chunks/858546a3.952caa2a5f1090446743.js | 1 - ...3a50672ae3f72841a5.94a6ab1e37663da66172.js | 1 + ...3a50672ae3f72841a5.b8020b63654bd5442007.js | 1 - .../chunks/b4e962f4.986fa92c462dd01807e1.js | 1 + .../chunks/commons.c5086e38f95c2aac1a1d.js | 1 - .../chunks/commons.e94abad51f20587a8a90.js | 1 + .../chunks/framework.5ab3178105b977ab7f59.js | 1 - .../chunks/main-319220bbc2fa7828d1ea.js | 1 - .../chunks/main-62147e686f76eec52d33.js | 1 + .../chunks/pages/_app-142f68bcc180ba211131.js | 1 + .../chunks/pages/_app-f8cc78bcb0640d61ce21.js | 1 - .../pages/_error-4eb8f515a86439bfafff.js | 1 + .../pages/_error-dae095f906abdfa483bc.js | 1 - .../adr/[...slug]-38695c2819a098ee4898.js | 1 + .../adr/[...slug]-c443fc6e0e6aba0910b7.js | 1 - .../pages/index-a7dbb16e12aaa157ca03.js | 1 - .../pages/index-ba31050b52f01cd89c5a.js | 1 + .../chunks/polyfills-694d8cb7f00ed89b8e7e.js | 1 + .../chunks/polyfills-8663811501b5bd5e5ef4.js | 1 - ...127fbcd79.css => f4b1bfe580d32a3f533d.css} | 0 .../index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../20200927-avoid-default-exports/index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../20201103-use-lunr-for-search/index.html | 274 +-- .../index.html | 278 +-- .../index.html | 378 ++-- .../index.html | 1959 +++++++++++++++++ .../index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../index.html | 274 +-- .../20200927-avoid-react-fc-type/index.html | 275 +-- .../web/20200927-use-react-hooks/index.html | 274 +-- .../index.html | 274 +-- adr/badge.svg | 2 +- .../adrs.json | 2 +- .../5_fT0tt-Z_QtKwGblXfgp/search-index.json | 1 + .../7xFMxN3EfFtzL5yajT5sc/search-index.json | 1 - adr/index.html | 149 +- 77 files changed, 4666 insertions(+), 2598 deletions(-) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20200924-use-markdown-architectural-decision-records.json (98%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20200926-use-the-adr-number-as-its-unique-id.json (96%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20200927-avoid-default-exports.json (94%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20201016-use-the-adr-slug-as-its-unique-id.json (98%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20201103-use-lunr-for-search.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/20210113-distribute-log4brains-as-a-global-npm-package.json (97%) create mode 100644 adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20240926-transition-to-simplified-git-flow.json create mode 100644 adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20241217-switch-back-to-github-flow.json rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json (95%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/core/20201027-adr-link-resolver-in-the-domain.json (98%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/web/20200925-use-nextjs-for-static-site-generation.json (99%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/web/20200926-react-file-structure-organized-by-feature.json (97%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/web/20200927-avoid-react-fc-type.json (96%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/web/20200927-use-react-hooks.json (94%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adr/web/20201007-next-js-persistent-layout-pattern.json (96%) rename adr/_next/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/index.json (61%) delete mode 100644 adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20240926-transition-to-simplified-git-flow.json create mode 100644 adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_buildManifest.js rename adr/_next/static/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/_ssgManifest.js (100%) delete mode 100644 adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_buildManifest.js create mode 100644 adr/_next/static/chunks/364bddfb.28847971f0e02b167249.js create mode 100644 adr/_next/static/chunks/39d4b69998343c06c2f6d09982e0011fc76b6c1e.6868553c766a0e95aa6f.js rename adr/_next/static/chunks/{d4b94cf0.b6182e23194ff5c5e218.js => 3b07cb59.4f0af644828e83722dc4.js} (56%) rename adr/_next/static/chunks/{580d9fe8.453754220469d52ed050.js => 3da477db.e49cd5277ed36ace32c1.js} (91%) create mode 100644 adr/_next/static/chunks/45d2d314fc8da5e3d79852782e4a432ad4da6771.064ca2339afb25745cbe.js delete mode 100644 adr/_next/static/chunks/45d2d314fc8da5e3d79852782e4a432ad4da6771.45cd41bc0da33630d641.js delete mode 100644 adr/_next/static/chunks/7ede4f97.b879b9f12f9bd2413581.js delete mode 100644 adr/_next/static/chunks/858546a3.952caa2a5f1090446743.js create mode 100644 adr/_next/static/chunks/a3e17150ead73d62fba7a33a50672ae3f72841a5.94a6ab1e37663da66172.js delete mode 100644 adr/_next/static/chunks/a3e17150ead73d62fba7a33a50672ae3f72841a5.b8020b63654bd5442007.js create mode 100644 adr/_next/static/chunks/b4e962f4.986fa92c462dd01807e1.js delete mode 100644 adr/_next/static/chunks/commons.c5086e38f95c2aac1a1d.js create mode 100644 adr/_next/static/chunks/commons.e94abad51f20587a8a90.js delete mode 100644 adr/_next/static/chunks/framework.5ab3178105b977ab7f59.js delete mode 100644 adr/_next/static/chunks/main-319220bbc2fa7828d1ea.js create mode 100644 adr/_next/static/chunks/main-62147e686f76eec52d33.js create mode 100644 adr/_next/static/chunks/pages/_app-142f68bcc180ba211131.js delete mode 100644 adr/_next/static/chunks/pages/_app-f8cc78bcb0640d61ce21.js create mode 100644 adr/_next/static/chunks/pages/_error-4eb8f515a86439bfafff.js delete mode 100644 adr/_next/static/chunks/pages/_error-dae095f906abdfa483bc.js create mode 100644 adr/_next/static/chunks/pages/adr/[...slug]-38695c2819a098ee4898.js delete mode 100644 adr/_next/static/chunks/pages/adr/[...slug]-c443fc6e0e6aba0910b7.js delete mode 100644 adr/_next/static/chunks/pages/index-a7dbb16e12aaa157ca03.js create mode 100644 adr/_next/static/chunks/pages/index-ba31050b52f01cd89c5a.js create mode 100644 adr/_next/static/chunks/polyfills-694d8cb7f00ed89b8e7e.js delete mode 100644 adr/_next/static/chunks/polyfills-8663811501b5bd5e5ef4.js rename adr/_next/static/css/{96d40a7068b127fbcd79.css => f4b1bfe580d32a3f533d.css} (100%) create mode 100644 adr/adr/20241217-switch-back-to-github-flow/index.html rename adr/data/{7xFMxN3EfFtzL5yajT5sc => 5_fT0tt-Z_QtKwGblXfgp}/adrs.json (91%) create mode 100644 adr/data/5_fT0tt-Z_QtKwGblXfgp/search-index.json delete mode 100644 adr/data/7xFMxN3EfFtzL5yajT5sc/search-index.json diff --git a/adr/404.html b/adr/404.html index b3222706..4856600e 100644 --- a/adr/404.html +++ b/adr/404.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + body::backdrop { + background-color: #fff; + } + blockquote { + color: #9e9e9e; + margin: 0; + padding: 0 1em; + border-left: 0.25em solid #F8F8F8; + }

404

This page could not be found.

\ No newline at end of file diff --git a/adr/404/index.html b/adr/404/index.html index b3222706..4856600e 100644 --- a/adr/404/index.html +++ b/adr/404/index.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + body::backdrop { + background-color: #fff; + } + blockquote { + color: #9e9e9e; + margin: 0; + padding: 0 1em; + border-left: 0.25em solid #F8F8F8; + }

404

This page could not be found.

\ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200924-use-markdown-architectural-decision-records.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200924-use-markdown-architectural-decision-records.json similarity index 98% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200924-use-markdown-architectural-decision-records.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200924-use-markdown-architectural-decision-records.json index 7e3e9e14..47640d40 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200924-use-markdown-architectural-decision-records.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200924-use-markdown-architectural-decision-records.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200924-use-markdown-architectural-decision-records","package":null,"title":"Use Markdown Architectural Decision Records","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe want to record architectural decisions made in this project.\nWhich format and structure should these records follow?\n\n## Considered Options\n\n- [MADR](https://adr.github.io/madr/) 2.1.2 with Log4brains patch\n- [MADR](https://adr.github.io/madr/) 2.1.2 – The original Markdown Architectural Decision Records\n- [Michael Nygard's template](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions) – The first incarnation of the term \"ADR\"\n- [Sustainable Architectural Decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions) – The Y-Statements\n- Other templates listed at \n- Formless – No conventions for file format and structure\n\n## Decision Outcome\n\nChosen option: \"MADR 2.1.2 with Log4brains patch\", because\n\n- Implicit assumptions should be made explicit.\n Design documentation is important to enable people understanding the decisions later on.\n See also [A rational design process: How and why to fake it](https://doi.org/10.1109/TSE.1986.6312940).\n- The MADR format is lean and fits our development style.\n- The MADR structure is comprehensible and facilitates usage & maintenance.\n- The MADR project is vivid.\n- Version 2.1.2 is the latest one available when starting to document ADRs.\n- The Log4brains patch adds more features, like tags.\n\nThe \"Log4brains patch\" performs the following modifications to the original template:\n\n- Change the ADR filenames format (`NNN-adr-name` becomes `YYYYMMDD-adr-name`), to avoid conflicts during Git merges.\n- Add a `draft` status, to enable collaborative writing.\n- Add a `Tags` field.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-24T21:59:59.000Z","file":{"relativePath":"docs/adr/20200924-use-markdown-architectural-decision-records.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200924-use-markdown-architectural-decision-records.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200924-use-markdown-architectural-decision-records.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200924-use-markdown-architectural-decision-records","package":null,"title":"Use Markdown Architectural Decision Records","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe want to record architectural decisions made in this project.\nWhich format and structure should these records follow?\n\n## Considered Options\n\n- [MADR](https://adr.github.io/madr/) 2.1.2 with Log4brains patch\n- [MADR](https://adr.github.io/madr/) 2.1.2 – The original Markdown Architectural Decision Records\n- [Michael Nygard's template](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions) – The first incarnation of the term \"ADR\"\n- [Sustainable Architectural Decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions) – The Y-Statements\n- Other templates listed at \n- Formless – No conventions for file format and structure\n\n## Decision Outcome\n\nChosen option: \"MADR 2.1.2 with Log4brains patch\", because\n\n- Implicit assumptions should be made explicit.\n Design documentation is important to enable people understanding the decisions later on.\n See also [A rational design process: How and why to fake it](https://doi.org/10.1109/TSE.1986.6312940).\n- The MADR format is lean and fits our development style.\n- The MADR structure is comprehensible and facilitates usage & maintenance.\n- The MADR project is vivid.\n- Version 2.1.2 is the latest one available when starting to document ADRs.\n- The Log4brains patch adds more features, like tags.\n\nThe \"Log4brains patch\" performs the following modifications to the original template:\n\n- Change the ADR filenames format (`NNN-adr-name` becomes `YYYYMMDD-adr-name`), to avoid conflicts during Git merges.\n- Add a `draft` status, to enable collaborative writing.\n- Add a `Tags` field.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-24T21:59:59.000Z","file":{"relativePath":"docs/adr/20200924-use-markdown-architectural-decision-records.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200924-use-markdown-architectural-decision-records.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200924-use-markdown-architectural-decision-records.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json index 6551bd20..50d39907 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna","package":null,"title":"Multi-packages architecture in a monorepo with Yarn and Lerna","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to define the initial overall architecture of the project.\nFor now, we are sure that we want to provide these features:\n\n- Local preview web UI\n- Static Site Generation from the CI/CD\n- CLI to create a new ADR quickly\n\nIn the future, we might want to provide these features:\n\n- Create/edit ADRs from the local web UI\n- VSCode extension to create and maybe edit an ADR from the IDE\n- Support ADR aggregation from multiple repositories\n\n## Considered Options\n\n- Monolith\n- Multi-packages, multirepo\n- Multi-packages, monorepo\n - with NPM and scripts for links and publication\n - with Yarn and scripts for publication\n - with Yarn and Lerna\n\n## Decision Outcome\n\nChosen option: \"Multi-packages, monorepo, with Yarn and Lerna\", because\n\n- We don't want a monolith because we want the core library/API to be very well tested and probably developed with DDD and hexagonal architecture. The other packages will just call this core API, they will contain fewer business rules as possible. As we are not so sure about the features we will provide in the future, this is good for extensibility.\n- Yarn + Lerna seems to be a very good practice used by a lot of other open-source projects to publish npm packages.\n\n## Links \n\n- [A Beginner's Guide to Lerna with Yarn Workspaces](https://medium.com/@jsilvax/a-workflow-guide-for-lerna-with-yarn-workspaces-60f97481149d)\n- [Step by Step Guide to create a Typescript Monorepo with Yarn Workspaces and Lerna](https://blog.usejournal.com/step-by-step-guide-to-create-a-typescript-monorepo-with-yarn-workspaces-and-lerna-a8ed530ecd6d)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna","package":null,"title":"Multi-packages architecture in a monorepo with Yarn and Lerna","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to define the initial overall architecture of the project.\nFor now, we are sure that we want to provide these features:\n\n- Local preview web UI\n- Static Site Generation from the CI/CD\n- CLI to create a new ADR quickly\n\nIn the future, we might want to provide these features:\n\n- Create/edit ADRs from the local web UI\n- VSCode extension to create and maybe edit an ADR from the IDE\n- Support ADR aggregation from multiple repositories\n\n## Considered Options\n\n- Monolith\n- Multi-packages, multirepo\n- Multi-packages, monorepo\n - with NPM and scripts for links and publication\n - with Yarn and scripts for publication\n - with Yarn and Lerna\n\n## Decision Outcome\n\nChosen option: \"Multi-packages, monorepo, with Yarn and Lerna\", because\n\n- We don't want a monolith because we want the core library/API to be very well tested and probably developed with DDD and hexagonal architecture. The other packages will just call this core API, they will contain fewer business rules as possible. As we are not so sure about the features we will provide in the future, this is good for extensibility.\n- Yarn + Lerna seems to be a very good practice used by a lot of other open-source projects to publish npm packages.\n\n## Links \n\n- [A Beginner's Guide to Lerna with Yarn Workspaces](https://medium.com/@jsilvax/a-workflow-guide-for-lerna-with-yarn-workspaces-60f97481149d)\n- [Step by Step Guide to create a Typescript Monorepo with Yarn Workspaces and Lerna](https://blog.usejournal.com/step-by-step-guide-to-create-a-typescript-monorepo-with-yarn-workspaces-and-lerna-a8ed530ecd6d)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json index 9d651fd1..89d19c6c 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200925-use-prettier-eslint-airbnb-for-the-code-style","package":null,"title":"Use Prettier-ESLint Airbnb for the code style","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to choose our lint and format tools, and the code style to enforce as well.\n\n## Considered Options\n\n- Prettier only\n- ESLint only\n- ESLint with Airbnb code style\n- ESLint with StandardJS code style\n- ESLint with Google code style\n- Prettier-ESLint with Airbnb code style\n- Prettier-ESLint with StandardJS code style\n- Prettier-ESLint with Google code style\n\n## Decision Outcome\n\nChosen option: \"Prettier-ESLint with Airbnb code style\", because\n\n- Airbnb code style is widely used (see [npm trends](https://www.npmtrends.com/eslint-config-airbnb-vs-eslint-config-google-vs-standard-vs-eslint-config-standard))\n- Prettier-ESLint enforce some additional code style. We like it because the more opinionated the code style is, the less debates there will be :-)\n\nIn addition, we use also Prettier to format json and markdown files.\n\n### Positive Consequences \n\n- Developers are encouraged to use the [Prettier ESLint](https://marketplace.visualstudio.com/items?itemName=rvest.vs-code-prettier-eslint) and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) VSCode extensions while developing to auto-format the files on save\n- And they are encouraged to use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) as well to highlight linting issues while developing\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200925-use-prettier-eslint-airbnb-for-the-code-style","package":null,"title":"Use Prettier-ESLint Airbnb for the code style","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to choose our lint and format tools, and the code style to enforce as well.\n\n## Considered Options\n\n- Prettier only\n- ESLint only\n- ESLint with Airbnb code style\n- ESLint with StandardJS code style\n- ESLint with Google code style\n- Prettier-ESLint with Airbnb code style\n- Prettier-ESLint with StandardJS code style\n- Prettier-ESLint with Google code style\n\n## Decision Outcome\n\nChosen option: \"Prettier-ESLint with Airbnb code style\", because\n\n- Airbnb code style is widely used (see [npm trends](https://www.npmtrends.com/eslint-config-airbnb-vs-eslint-config-google-vs-standard-vs-eslint-config-standard))\n- Prettier-ESLint enforce some additional code style. We like it because the more opinionated the code style is, the less debates there will be :-)\n\nIn addition, we use also Prettier to format json and markdown files.\n\n### Positive Consequences \n\n- Developers are encouraged to use the [Prettier ESLint](https://marketplace.visualstudio.com/items?itemName=rvest.vs-code-prettier-eslint) and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) VSCode extensions while developing to auto-format the files on save\n- And they are encouraged to use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) as well to highlight linting issues while developing\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200925-use-prettier-eslint-airbnb-for-the-code-style.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200926-use-the-adr-number-as-its-unique-id.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200926-use-the-adr-number-as-its-unique-id.json similarity index 96% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200926-use-the-adr-number-as-its-unique-id.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200926-use-the-adr-number-as-its-unique-id.json index 78507b3e..6b410254 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200926-use-the-adr-number-as-its-unique-id.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200926-use-the-adr-number-as-its-unique-id.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200926-use-the-adr-number-as-its-unique-id","package":null,"title":"Use the ADR number as its unique ID","status":"superseded","supersededBy":{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-16T21:59:59.000Z"},"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe need to be able to identify uniquely an ADR, especially in these contexts:\n\n- Web: to build its URL\n- CLI: to identify an ADR in a command argument (example: \"edit\", or \"preview\")\n\n## Considered Options\n\n- ADR number (ie. filename prefixed number, example: `0001-use-markdown-architectural-decision-records.md`)\n- ADR filename\n- ADR title\n\n## Decision Outcome\n\nChosen option: \"ADR number\", because\n\n- It is possible to have duplicated titles\n- The filename is too long to enter without autocompletion, but we could support it as a second possible identifier for the CLI in the future\n- Other ADR tools like [adr-tools](https://github.com/npryce/adr-tools) already use the number as a unique ID\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-26T21:59:59.000Z","file":{"relativePath":"docs/adr/20200926-use-the-adr-number-as-its-unique-id.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200926-use-the-adr-number-as-its-unique-id.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200926-use-the-adr-number-as-its-unique-id.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200926-use-the-adr-number-as-its-unique-id","package":null,"title":"Use the ADR number as its unique ID","status":"superseded","supersededBy":{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-16T21:59:59.000Z"},"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe need to be able to identify uniquely an ADR, especially in these contexts:\n\n- Web: to build its URL\n- CLI: to identify an ADR in a command argument (example: \"edit\", or \"preview\")\n\n## Considered Options\n\n- ADR number (ie. filename prefixed number, example: `0001-use-markdown-architectural-decision-records.md`)\n- ADR filename\n- ADR title\n\n## Decision Outcome\n\nChosen option: \"ADR number\", because\n\n- It is possible to have duplicated titles\n- The filename is too long to enter without autocompletion, but we could support it as a second possible identifier for the CLI in the future\n- Other ADR tools like [adr-tools](https://github.com/npryce/adr-tools) already use the number as a unique ID\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-26T21:59:59.000Z","file":{"relativePath":"docs/adr/20200926-use-the-adr-number-as-its-unique-id.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200926-use-the-adr-number-as-its-unique-id.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200926-use-the-adr-number-as-its-unique-id.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200927-avoid-default-exports.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200927-avoid-default-exports.json similarity index 94% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200927-avoid-default-exports.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200927-avoid-default-exports.json index 69d88b68..e6140212 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20200927-avoid-default-exports.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20200927-avoid-default-exports.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200927-avoid-default-exports","package":null,"title":"Avoid default exports","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will avoid default exports in all our codebase, and use named exports instead.\n\n## Links\n\n- \n- \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"docs/adr/20200927-avoid-default-exports.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200927-avoid-default-exports.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200927-avoid-default-exports.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20200927-avoid-default-exports","package":null,"title":"Avoid default exports","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will avoid default exports in all our codebase, and use named exports instead.\n\n## Links\n\n- \n- \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"docs/adr/20200927-avoid-default-exports.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20200927-avoid-default-exports.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20200927-avoid-default-exports.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201016-use-the-adr-slug-as-its-unique-id.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201016-use-the-adr-slug-as-its-unique-id.json similarity index 98% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201016-use-the-adr-slug-as-its-unique-id.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201016-use-the-adr-slug-as-its-unique-id.json index 9fc4678f..e32dc5b5 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201016-use-the-adr-slug-as-its-unique-id.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201016-use-the-adr-slug-as-its-unique-id.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nCurrently, ADR files follow this format: `NNNN-adr-title.md`, with NNNN being an incremental number from `0000` to `9999`.\nIt causes an issue during a `git merge` when two developers have created a new ADR on their respective branch.\nThere is a conflict because .\n\n## Decision\n\nFrom now on, we won't use ADR numbers anymore.\nAn ADR will be uniquely identified by its slug (ie. its filename without the extension), and its filename will have the following format: `YYYYMMDD-adr-title.md`, with `YYYYMMDD` being the date of creation of the file.\n\nAs a result, there won't have conflicts anymore and the files will still be correctly sorted in the IDE thanks to the date.\n\nFinally, the ADRs will be sorted with these rules (ordered by priority):\n\n1. By Date field, in the markdown file (if present)\n2. By Git creation date (does not follow renames)\n3. By file creation date if no versioned yet\n4. By slug\n\nThe core library is responsible for sorting.\n\n## Links\n\n- Supersedes \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-16T21:59:59.000Z","file":{"relativePath":"docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nCurrently, ADR files follow this format: `NNNN-adr-title.md`, with NNNN being an incremental number from `0000` to `9999`.\nIt causes an issue during a `git merge` when two developers have created a new ADR on their respective branch.\nThere is a conflict because .\n\n## Decision\n\nFrom now on, we won't use ADR numbers anymore.\nAn ADR will be uniquely identified by its slug (ie. its filename without the extension), and its filename will have the following format: `YYYYMMDD-adr-title.md`, with `YYYYMMDD` being the date of creation of the file.\n\nAs a result, there won't have conflicts anymore and the files will still be correctly sorted in the IDE thanks to the date.\n\nFinally, the ADRs will be sorted with these rules (ordered by priority):\n\n1. By Date field, in the markdown file (if present)\n2. By Git creation date (does not follow renames)\n3. By file creation date if no versioned yet\n4. By slug\n\nThe core library is responsible for sorting.\n\n## Links\n\n- Supersedes \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-16T21:59:59.000Z","file":{"relativePath":"docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201016-use-the-adr-slug-as-its-unique-id.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json index 2c638dfe..aa6df34d 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx","package":null,"title":"The core API is responsible for enhancing the ADR markdown body with MDX","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nThe markdown body of ADRs cannot be used as is, because:\n\n- Links between ADRs have to be replaced with correct URLs\n- Header (status, date, deciders etc...) has to be rendered with specific components\n\n## Decision Drivers \n\n- Potential future development of a VSCode extension\n\n## Considered Options\n\n- Option 1: the UI is responsible\n- Option 2: the core API is responsible (with MDX)\n\n## Decision Outcome\n\nChosen option: \"Option 2: the core API is responsible (with MDX)\".\nBecause if we develop the VSCode extension, it is better to add more business logic into the core package, and it is better tested.\n\n### Positive Consequences \n\n- The metadata in the header is simply removed\n\n### Negative Consequences \n\n- Each UI package will have to implement its own Header component\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-26T22:59:59.000Z","file":{"relativePath":"docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx","package":null,"title":"The core API is responsible for enhancing the ADR markdown body with MDX","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nThe markdown body of ADRs cannot be used as is, because:\n\n- Links between ADRs have to be replaced with correct URLs\n- Header (status, date, deciders etc...) has to be rendered with specific components\n\n## Decision Drivers \n\n- Potential future development of a VSCode extension\n\n## Considered Options\n\n- Option 1: the UI is responsible\n- Option 2: the core API is responsible (with MDX)\n\n## Decision Outcome\n\nChosen option: \"Option 2: the core API is responsible (with MDX)\".\nBecause if we develop the VSCode extension, it is better to add more business logic into the core package, and it is better tested.\n\n### Positive Consequences \n\n- The metadata in the header is simply removed\n\n### Negative Consequences \n\n- Each UI package will have to implement its own Header component\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-26T22:59:59.000Z","file":{"relativePath":"docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201103-use-lunr-for-search.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201103-use-lunr-for-search.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201103-use-lunr-for-search.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201103-use-lunr-for-search.json index e063c1aa..954fac0c 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20201103-use-lunr-for-search.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20201103-use-lunr-for-search.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201103-use-lunr-for-search","package":null,"title":"Use Lunr for search","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to provide a search bar to perform full-text search on ADRs.\n\n## Decision Drivers \n\n- Works in preview mode AND in the statically built version\n- Provides good fuzzy search and stemming capabilities\n- Is fast enough to be able to show results while typing\n- Does not consume too much CPU and RAM on the client-side, especially for the statically built version\n\n## Considered Options\n\n- Option 1: Fuse.js\n- Option 2: Lunr.js\n\n## Decision Outcome\n\nChosen option: \"Option 2: Lunr.js\".\n\n## Pros and Cons of the Options \n\n### Option 1: Fuse.js\n\n\n\n- Fast indexing\n- Slow searching\n- Only fuzzy search, no stemming\n\n### Option 2: Lunr.js\n\n\n\n- Slow indexing, but supports index serialization to pre-build them\n- Fast searching\n- Stemming, multi-language support\n- Retrieves the position of the matched tokens\n\n## Links\n\n- \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-11-03T22:59:59.000Z","file":{"relativePath":"docs/adr/20201103-use-lunr-for-search.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201103-use-lunr-for-search.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201103-use-lunr-for-search.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20201103-use-lunr-for-search","package":null,"title":"Use Lunr for search","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to provide a search bar to perform full-text search on ADRs.\n\n## Decision Drivers \n\n- Works in preview mode AND in the statically built version\n- Provides good fuzzy search and stemming capabilities\n- Is fast enough to be able to show results while typing\n- Does not consume too much CPU and RAM on the client-side, especially for the statically built version\n\n## Considered Options\n\n- Option 1: Fuse.js\n- Option 2: Lunr.js\n\n## Decision Outcome\n\nChosen option: \"Option 2: Lunr.js\".\n\n## Pros and Cons of the Options \n\n### Option 1: Fuse.js\n\n\n\n- Fast indexing\n- Slow searching\n- Only fuzzy search, no stemming\n\n### Option 2: Lunr.js\n\n\n\n- Slow indexing, but supports index serialization to pre-build them\n- Fast searching\n- Stemming, multi-language support\n- Retrieves the position of the matched tokens\n\n## Links\n\n- \n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-11-03T22:59:59.000Z","file":{"relativePath":"docs/adr/20201103-use-lunr-for-search.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20201103-use-lunr-for-search.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20201103-use-lunr-for-search.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20210113-distribute-log4brains-as-a-global-npm-package.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20210113-distribute-log4brains-as-a-global-npm-package.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20210113-distribute-log4brains-as-a-global-npm-package.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20210113-distribute-log4brains-as-a-global-npm-package.json index 634a87f5..e5022fab 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20210113-distribute-log4brains-as-a-global-npm-package.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20210113-distribute-log4brains-as-a-global-npm-package.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20210113-distribute-log4brains-as-a-global-npm-package","package":null,"title":"Distribute Log4brains as a global NPM package","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\nTechnical Story: \n\n## Context and Problem Statement\n\nLog4brains (`v1.0.0-beta.4`) installation procedure is currently optimized for JS projects and looks like this:\n\n- Run `npx init-log4brains`\n- Which installs locally `@log4brains/cli` and `@log4brains/web`\n- And creates custom entries in `package.json`'s `scripts` section:\n - `\"log4brains-preview\": \"log4brains-web preview\"`\n - `\"log4brains-build\": \"log4brains-web build\"`\n - `\"adr\": \"log4brains adr\"`\n\nFor non-JS projects, you have to install manually the packages and the `npx init-log4brains` script does not work.\n\nSince Log4brains is intended for all projects, not especially JS ones, we have to make the installation procedure simpler and language-agnostic.\n\n## Decision Drivers \n\n- Simplicity of the installation procedure\n- Language agnostic\n- Initialization script works on any kind of project\n- Faster \"getting started\"\n\n## Decision Outcome\n\nThe new installation procedure is now language agnostic and will be the following:\n\n```bash\nnpm install -g log4brains\nlog4brains init\n```\n\nLog4brains will be distributed as a global NPM package named `log4brains`, which provides a global `log4brains` command.\n\n- This global package will require the existing `@log4brains/cli` and `@log4brains/web` packages\n- `init-log4brains` will be renamed to `@log4brains/init` and required as a dependency\n\n### Consequences\n\nFor a JS project, it is now impossible to pin Log4brains to a specific version.\nWe may implement a [xojs/xo](https://github.com/xojs/xo)-like behavior later: \"the CLI will use your local install of XO when available, even when run globally.\"\n\n## Links\n\n- [Related GitHub issue](https://github.com/thomvaill/log4brains/issues/14#issuecomment-750154907)\n"},"creationDate":"2021-01-13T17:48:47.000Z","lastEditDate":"2021-01-13T18:22:08.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2021-01-13T22:59:59.000Z","file":{"relativePath":"docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20210113-distribute-log4brains-as-a-global-npm-package","package":null,"title":"Distribute Log4brains as a global NPM package","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\nTechnical Story: \n\n## Context and Problem Statement\n\nLog4brains (`v1.0.0-beta.4`) installation procedure is currently optimized for JS projects and looks like this:\n\n- Run `npx init-log4brains`\n- Which installs locally `@log4brains/cli` and `@log4brains/web`\n- And creates custom entries in `package.json`'s `scripts` section:\n - `\"log4brains-preview\": \"log4brains-web preview\"`\n - `\"log4brains-build\": \"log4brains-web build\"`\n - `\"adr\": \"log4brains adr\"`\n\nFor non-JS projects, you have to install manually the packages and the `npx init-log4brains` script does not work.\n\nSince Log4brains is intended for all projects, not especially JS ones, we have to make the installation procedure simpler and language-agnostic.\n\n## Decision Drivers \n\n- Simplicity of the installation procedure\n- Language agnostic\n- Initialization script works on any kind of project\n- Faster \"getting started\"\n\n## Decision Outcome\n\nThe new installation procedure is now language agnostic and will be the following:\n\n```bash\nnpm install -g log4brains\nlog4brains init\n```\n\nLog4brains will be distributed as a global NPM package named `log4brains`, which provides a global `log4brains` command.\n\n- This global package will require the existing `@log4brains/cli` and `@log4brains/web` packages\n- `init-log4brains` will be renamed to `@log4brains/init` and required as a dependency\n\n### Consequences\n\nFor a JS project, it is now impossible to pin Log4brains to a specific version.\nWe may implement a [xojs/xo](https://github.com/xojs/xo)-like behavior later: \"the CLI will use your local install of XO when available, even when run globally.\"\n\n## Links\n\n- [Related GitHub issue](https://github.com/thomvaill/log4brains/issues/14#issuecomment-750154907)\n"},"creationDate":"2021-01-13T17:48:47.000Z","lastEditDate":"2021-01-13T18:22:08.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2021-01-13T22:59:59.000Z","file":{"relativePath":"docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20210113-distribute-log4brains-as-a-global-npm-package.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20240926-transition-to-simplified-git-flow.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20240926-transition-to-simplified-git-flow.json new file mode 100644 index 00000000..d9f00940 --- /dev/null +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20240926-transition-to-simplified-git-flow.json @@ -0,0 +1 @@ +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20240926-transition-to-simplified-git-flow","package":null,"title":"Transition to Simplified Git Flow","status":"superseded","supersededBy":{"slug":"20241217-switch-back-to-github-flow","package":null,"title":"Switch back to GitHub Flow, but keeping the automated beta releases","status":"accepted","creationDate":"2024-12-17T11:14:06.000Z","publicationDate":"2024-12-17T22:59:59.000Z"},"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nThe existing GitHub Flow process lacked clarity for stable releases and was overly manual, making it hard to delegate and streamline contributions. The need was for a more structured yet simple workflow that would facilitate testing and contributions while automating releases.\n\nAdditional context in [Discussion #108: Does this project need a new maintainer?](https://github.com/thomvaill/log4brains/discussions/108)\n\n## Decision Drivers\n\n- Need for automation in releases.\n- Be able to merge more quickly whithout breaking the stable branch, while making it possible for beta testers to test the new features.\n- Easier delegation to new maintainers.\n- Simplified yet structured process for contributors.\n- Clearer separation between ongoing development and stable releases.\n\n## Considered Options\n\n- Continue with GitHub Flow.\n- Transition to Simplified Git Flow.\n- Full Git Flow with release branches.\n\n## Decision Outcome\n\nChosen option: **Simplified Git Flow**, because it provides structure (separating development from stable releases) without excessive complexity. It also allows for automated canary/beta releases and easier delegation for merging feature branches to `develop`.\n\n### Positive Consequences\n\n- Clear separation of development (`develop`) and stable (`stable`) branches.\n- Automated beta releases from `develop` to facilitate early testing.\n- Allows contributors to participate in testing beta features and reduces the manual overhead of testing and releasing stable versions\n- Easier to delegate responsibilities (Canary vs. Core Maintainers, see [CONTRIBUTING.md](CONTRIBUTING.md)).\n- More streamlined versioning via Conventional Commits.\n\n### Negative Consequences\n\n- Contributors need to adjust to using `develop` for PRs instead of `stable`.\n- Slight learning curve for Conventional Commits.\n\n## Pros and Cons of the Options\n\n### Continue with GitHub Flow\n\n- Good, because it’s simpler with fewer branches.\n- Bad, because it lacks separation of development and stable code.\n- Bad, because manual testing and release increase bottlenecks.\n\n### Simplified Git Flow\n\n- Good, because it balances structure with simplicity.\n- Good, because it allows easier delegation to maintainers.\n- Bad, because it introduces a new `develop` branch, which may need adjustment for contributors.\n\n### Full Git Flow\n\n- Good, because it provides a full release management process.\n- Bad, because it adds unnecessary complexity for smaller open-source projects.\n"},"creationDate":"2024-10-28T10:13:28.000Z","lastEditDate":"2024-12-17T11:14:06.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2024-09-26T21:59:59.000Z","file":{"relativePath":"docs/adr/20240926-transition-to-simplified-git-flow.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20240926-transition-to-simplified-git-flow.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20240926-transition-to-simplified-git-flow.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20241217-switch-back-to-github-flow.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20241217-switch-back-to-github-flow.json new file mode 100644 index 00000000..b1c4c64c --- /dev/null +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/20241217-switch-back-to-github-flow.json @@ -0,0 +1 @@ +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20241217-switch-back-to-github-flow","package":null,"title":"Switch back to GitHub Flow, but keeping the automated beta releases","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nThe previous decision to adopt a Simplified Git Flow with a `develop` and `stable` branch aimed to provide clearer separation between development and releases while enabling automated beta releases. However, we faced tooling limitations.\n\nSpecifically, **Lerna**, which we use for managing our monorepo, does not integrate well with Git Flow processes ([Lerna issue #2023](https://github.com/lerna/lerna/issues/2023#issuecomment-480402592)), when managing both a `develop` and `stable` branches: we cannot make Lerna publish a stable release from a different branch than the main one.\n\n## Decision Drivers \n\n- Make Lerna work again for stable releases\n- Keep the benefits of the previous workflow:\n - Need for automation in releases.\n - Be able to merge more quickly whithout breaking the stable branch, while making it possible for beta testers to test the new features.\n - Easier delegation to new maintainers.\n - Simplified yet structured process for contributors.\n - Clearer separation between ongoing development and stable releases.\n\n## Considered Options\n\n- Option 1: Patch Lerna to keep the Simplified Git Flow (as described in the link above)\n- Option 2: Switch back to Github Flow, but keeping the automated beta releases\n\n## Decision Outcome\n\nChosen option: \"Option 2: Switch back to Github Flow, but keeping the automated beta releases\", because it fullfils all the requirements.\nIn fact, we can still merge quickly pull requests without releasing a stable release, while keeping the automated beta release.\nThe stable release is a manual script executed by maintainers.\n"},"creationDate":"2024-12-17T11:14:06.000Z","lastEditDate":"2024-12-17T11:14:06.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2024-12-17T22:59:59.000Z","file":{"relativePath":"docs/adr/20241217-switch-back-to-github-flow.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20241217-switch-back-to-github-flow.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20241217-switch-back-to-github-flow.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json similarity index 95% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json index b87bee90..32e3e157 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201002-use-explicit-architecture-and-ddd-for-the-core-api.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201002-use-explicit-architecture-and-ddd-for-the-core-api","package":"core","title":"Use Explicit Architecture and DDD for the core API","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\nAs mentioned in , we want the core API to be well-tested because all the business logic will happen here.\n\nHerberto GraΓ§a did an awesome job but by putting together all the best practices of DDD, hexagonal architecture, onion architecture, clean architecture, CQRS... in what he calls [Explicit Architecture](https://herbertograca.com/tag/explicit-architecture/).\nWe will use this architecture for our core package.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-02T21:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201002-use-explicit-architecture-and-ddd-for-the-core-api","package":"core","title":"Use Explicit Architecture and DDD for the core API","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\nAs mentioned in , we want the core API to be well-tested because all the business logic will happen here.\n\nHerberto GraΓ§a did an awesome job but by putting together all the best practices of DDD, hexagonal architecture, onion architecture, clean architecture, CQRS... in what he calls [Explicit Architecture](https://herbertograca.com/tag/explicit-architecture/).\nWe will use this architecture for our core package.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-02T21:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201002-use-explicit-architecture-and-ddd-for-the-core-api.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json index 7c55077a..ac8e0349 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201003-markdown-parsing-is-part-of-the-domain.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201003-markdown-parsing-is-part-of-the-domain","package":"core","title":"Markdown parsing is part of the domain","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nDevelopment of the core domain.\n\n## Considered Options\n\n- Markdown is part of the domain\n- Markdown is a technical detail, which should be developed in the infrastructure layer\n\n## Decision Outcome\n\nChosen option: \"Markdown is part of the domain\" because we want to be able to parse it \"smartly\", without forcing a specific structure.\nTherefore, a lot of business logic is involved and should be tested.\n\n### Positive Consequences\n\n- Test coverage of the markdown parsing\n\n### Negative Consequences\n\n- The business logic is tightly tied to the markdown format. It won't be possible to switch to another format easily in the future\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-03T21:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201003-markdown-parsing-is-part-of-the-domain","package":"core","title":"Markdown parsing is part of the domain","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nDevelopment of the core domain.\n\n## Considered Options\n\n- Markdown is part of the domain\n- Markdown is a technical detail, which should be developed in the infrastructure layer\n\n## Decision Outcome\n\nChosen option: \"Markdown is part of the domain\" because we want to be able to parse it \"smartly\", without forcing a specific structure.\nTherefore, a lot of business logic is involved and should be tested.\n\n### Positive Consequences\n\n- Test coverage of the markdown parsing\n\n### Negative Consequences\n\n- The business logic is tightly tied to the markdown format. It won't be possible to switch to another format easily in the future\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-03T21:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201003-markdown-parsing-is-part-of-the-domain.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201027-adr-link-resolver-in-the-domain.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201027-adr-link-resolver-in-the-domain.json similarity index 98% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201027-adr-link-resolver-in-the-domain.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201027-adr-link-resolver-in-the-domain.json index f83b1396..cbf4ff39 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/core/20201027-adr-link-resolver-in-the-domain.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/core/20201027-adr-link-resolver-in-the-domain.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201027-adr-link-resolver-in-the-domain","package":"core","title":"ADR link resolver in the domain","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to translate markdown links between ADRs to static site links.\nWe cannot deduce the slug easily from the paths because of the \"path / package\" mapping, which is only known from the config.\n\n## Considered Options\n\n- Option 1: the ADR repository sets a Map on the ADR (`path -> slug`) for every link discovered in the Markdown\n- Option 2: we introduce an \"ADR link resolver\" in the domain\n- Option 3: we don't rely on link paths, but only on link labels (ie label must === slug)\n\n## Decision Outcome\n\nChosen option: \"Option 2: we introduce an \"ADR link resolver\" in the domain\".\nBecause option 3 is too restrictive and option 1 seems too hacky.\nAnd this solution is compatible with .\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-27T22:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"core/20201027-adr-link-resolver-in-the-domain","package":"core","title":"ADR link resolver in the domain","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe have to translate markdown links between ADRs to static site links.\nWe cannot deduce the slug easily from the paths because of the \"path / package\" mapping, which is only known from the config.\n\n## Considered Options\n\n- Option 1: the ADR repository sets a Map on the ADR (`path -> slug`) for every link discovered in the Markdown\n- Option 2: we introduce an \"ADR link resolver\" in the domain\n- Option 3: we don't rely on link paths, but only on link labels (ie label must === slug)\n\n## Decision Outcome\n\nChosen option: \"Option 2: we introduce an \"ADR link resolver\" in the domain\".\nBecause option 3 is too restrictive and option 1 seems too hacky.\nAnd this solution is compatible with .\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-27T22:59:59.000Z","file":{"relativePath":"packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/core/docs/adr/20201027-adr-link-resolver-in-the-domain.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200925-use-nextjs-for-static-site-generation.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200925-use-nextjs-for-static-site-generation.json similarity index 99% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200925-use-nextjs-for-static-site-generation.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200925-use-nextjs-for-static-site-generation.json index 20f36808..2dd3b16e 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200925-use-nextjs-for-static-site-generation.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200925-use-nextjs-for-static-site-generation.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200925-use-nextjs-for-static-site-generation","package":"web","title":"Use Next.js for Static Site Generation","status":"accepted","supersededBy":null,"tags":["frontend","frameworks"],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nLog4brains has two main features:\n\n- `edit mode` which lets the developer edit the ADRs from a web UI, which is served locally by running `npm run log4brains`\n - The developer is also able to edit the markdown files directly from the IDE, which triggers a live-reload of the web UI\n- `build mode` which generates a static site ready to deploy on a Github-pages-like service, so that the ADRs are easily browsable. Usually run by the CI with `npm run log4brains-build`\n\nWe need to find the best way to develop these two modes.\n\n## Decision Drivers \n\n- Maximize code reusability between the two modes (ie. do not have to develop everything twice)\n- Time to Market:\n - @Thomvaill (first contributor) is a Node/React/PHP developer\n - @Thomvaill has 3 weeks available to develop and ship the first version of log4brains\n- Balance between completeness/readyness of the chosen solution and future customization\n - This first version will have limited features for now but the chosen solution must be customizable enough to be able to implement the future features (ie. we can't choose a 100% opinionated and closed to modifications solution)\n\n## Considered Options\n\n- Option 1: MkDocs\n- Option 2: Docsify\n- Option 3: Docusaurus 2\n- Option 4: Gatsby\n- Option 5: Next.js\n\nOther SSG like Nuxt or Hugo were not considered, because similar to Gatsby and Next.js in terms of features, but developed with other technologies than React.\n\n## Decision Outcome\n\nChosen option: \"Option 5: Next.js\", because\n\n- Markdown powered solutions are not enough customizable for our needs\n- Gatsby and Next.js are quite similar, so it was hard to choose, but\n - Gatsby is more opinionated, because of GraphQL\n - I was influenced by this article: [Which To Choose in 2020: NextJS or Gatsby?](https://medium.com/frontend-digest/which-to-choose-in-2020-nextjs-vs-gatsby-1aa7ca279d8a)\n\n### Positive Consequences \n\n- We will use Typescript because Next.js supports it well\n\n## Pros and Cons of the Options \n\n### Option 1: MkDocs\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Very popular and actively maintained (10.8k stars on Github on 2020-09-22)\n- Extendable with plugins and themes\n- Live-reload already implemented\n\n#### Cons\n\n- `edit mode` can't be developed with a MkDoc plugin, so it has to be developed separately\n- Some manual config in `mkdocs.yml` is required for the navigation and/or some [Front Matter](https://jekyllrb.com/docs/front-matter/) config in each markdown file\n- Not 100% customizable, even with plugins\n- Python\n\n### Option 2: Docsify\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Very popular and actively maintained (15.1k stars on Github on 2020-09-22)\n- Extendable with plugins and themes\n- Live-reload already implemented\n- No need to generate static pages (lib served over a CDN, which reads directly the markdown files from the repo) -> CI setup simplified\n\n#### Cons\n\n- `edit mode` has to be developed separately\n- Some manual config in `_nav.yml` is required for the navigation\n- Not 100% customizable, even with plugins\n- No static pages generation (lib served over a CDN, which reads directly the markdown files from the repo) -> impossible to setup on private projects\n\n### Option 3: Docusaurus 2\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Possible to create React pages as well -> good for extensibility\n- Very popular and actively maintained (19.1k stars on Github on 2020-09-22), even if the V2 is still in beta\n- Live-reload already implemented\n\n#### Cons\n\n- No obvious way to develop the `edit mode` without some hacks\n- Every markdown file require a [Front Matter](https://jekyllrb.com/docs/front-matter/) header\n\n### Option 4: Gatsby\n\n\n\n#### Pros\n\n- Easily extensible SSG framework\n- Very popular and actively maintained (47k stars on Github on 2020-09-22)\n- `edit mode` can be developed on top of the `gatsby develop` command\n- Typescript support\n\n#### Cons\n\n- Have to use GraphQL (opinionated framework)\n- Need more development to parse markdown files than an already Markdown powered solution\n\n### Option 5: Next.js\n\n\n\n#### Pros\n\n- Easily extensible, non-opinionated SSG framework\n- Very popular and actively maintained (53.5k stars on Github on 2020-09-22)\n- `edit mode` can be developed on top of the `npm run dev` command\n- Typescript support\n\n#### Cons\n\n- Need more development to parse markdown files than an already Markdown powered solution\n\n## Links \n\n- [Curated list of Static Site Generators](https://www.staticgen.com/) used to compare them\n- [Which To Choose in 2020: NextJS or Gatsby?](https://medium.com/frontend-digest/which-to-choose-in-2020-nextjs-vs-gatsby-1aa7ca279d8a)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200925-use-nextjs-for-static-site-generation","package":"web","title":"Use Next.js for Static Site Generation","status":"accepted","supersededBy":null,"tags":["frontend","frameworks"],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nLog4brains has two main features:\n\n- `edit mode` which lets the developer edit the ADRs from a web UI, which is served locally by running `npm run log4brains`\n - The developer is also able to edit the markdown files directly from the IDE, which triggers a live-reload of the web UI\n- `build mode` which generates a static site ready to deploy on a Github-pages-like service, so that the ADRs are easily browsable. Usually run by the CI with `npm run log4brains-build`\n\nWe need to find the best way to develop these two modes.\n\n## Decision Drivers \n\n- Maximize code reusability between the two modes (ie. do not have to develop everything twice)\n- Time to Market:\n - @Thomvaill (first contributor) is a Node/React/PHP developer\n - @Thomvaill has 3 weeks available to develop and ship the first version of log4brains\n- Balance between completeness/readyness of the chosen solution and future customization\n - This first version will have limited features for now but the chosen solution must be customizable enough to be able to implement the future features (ie. we can't choose a 100% opinionated and closed to modifications solution)\n\n## Considered Options\n\n- Option 1: MkDocs\n- Option 2: Docsify\n- Option 3: Docusaurus 2\n- Option 4: Gatsby\n- Option 5: Next.js\n\nOther SSG like Nuxt or Hugo were not considered, because similar to Gatsby and Next.js in terms of features, but developed with other technologies than React.\n\n## Decision Outcome\n\nChosen option: \"Option 5: Next.js\", because\n\n- Markdown powered solutions are not enough customizable for our needs\n- Gatsby and Next.js are quite similar, so it was hard to choose, but\n - Gatsby is more opinionated, because of GraphQL\n - I was influenced by this article: [Which To Choose in 2020: NextJS or Gatsby?](https://medium.com/frontend-digest/which-to-choose-in-2020-nextjs-vs-gatsby-1aa7ca279d8a)\n\n### Positive Consequences \n\n- We will use Typescript because Next.js supports it well\n\n## Pros and Cons of the Options \n\n### Option 1: MkDocs\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Very popular and actively maintained (10.8k stars on Github on 2020-09-22)\n- Extendable with plugins and themes\n- Live-reload already implemented\n\n#### Cons\n\n- `edit mode` can't be developed with a MkDoc plugin, so it has to be developed separately\n- Some manual config in `mkdocs.yml` is required for the navigation and/or some [Front Matter](https://jekyllrb.com/docs/front-matter/) config in each markdown file\n- Not 100% customizable, even with plugins\n- Python\n\n### Option 2: Docsify\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Very popular and actively maintained (15.1k stars on Github on 2020-09-22)\n- Extendable with plugins and themes\n- Live-reload already implemented\n- No need to generate static pages (lib served over a CDN, which reads directly the markdown files from the repo) -> CI setup simplified\n\n#### Cons\n\n- `edit mode` has to be developed separately\n- Some manual config in `_nav.yml` is required for the navigation\n- Not 100% customizable, even with plugins\n- No static pages generation (lib served over a CDN, which reads directly the markdown files from the repo) -> impossible to setup on private projects\n\n### Option 3: Docusaurus 2\n\n\n\n#### Pros\n\n- Already powered by Markdown\n- Possible to create React pages as well -> good for extensibility\n- Very popular and actively maintained (19.1k stars on Github on 2020-09-22), even if the V2 is still in beta\n- Live-reload already implemented\n\n#### Cons\n\n- No obvious way to develop the `edit mode` without some hacks\n- Every markdown file require a [Front Matter](https://jekyllrb.com/docs/front-matter/) header\n\n### Option 4: Gatsby\n\n\n\n#### Pros\n\n- Easily extensible SSG framework\n- Very popular and actively maintained (47k stars on Github on 2020-09-22)\n- `edit mode` can be developed on top of the `gatsby develop` command\n- Typescript support\n\n#### Cons\n\n- Have to use GraphQL (opinionated framework)\n- Need more development to parse markdown files than an already Markdown powered solution\n\n### Option 5: Next.js\n\n\n\n#### Pros\n\n- Easily extensible, non-opinionated SSG framework\n- Very popular and actively maintained (53.5k stars on Github on 2020-09-22)\n- `edit mode` can be developed on top of the `npm run dev` command\n- Typescript support\n\n#### Cons\n\n- Need more development to parse markdown files than an already Markdown powered solution\n\n## Links \n\n- [Curated list of Static Site Generators](https://www.staticgen.com/) used to compare them\n- [Which To Choose in 2020: NextJS or Gatsby?](https://medium.com/frontend-digest/which-to-choose-in-2020-nextjs-vs-gatsby-1aa7ca279d8a)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-25T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200925-use-nextjs-for-static-site-generation.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200926-react-file-structure-organized-by-feature.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200926-react-file-structure-organized-by-feature.json similarity index 97% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200926-react-file-structure-organized-by-feature.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200926-react-file-structure-organized-by-feature.json index 141a046c..5de0c22e 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200926-react-file-structure-organized-by-feature.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200926-react-file-structure-organized-by-feature.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200926-react-file-structure-organized-by-feature","package":"web","title":"React file structure organized by feature","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will follow the structure described in this article: [How to better organize your React applications?](https://medium.com/@alexmngn/how-to-better-organize-your-react-applications-2fd3ea1920f1) by Alexis Mangin.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-26T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200926-react-file-structure-organized-by-feature","package":"web","title":"React file structure organized by feature","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will follow the structure described in this article: [How to better organize your React applications?](https://medium.com/@alexmngn/how-to-better-organize-your-react-applications-2fd3ea1920f1) by Alexis Mangin.\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-26T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200926-react-file-structure-organized-by-feature.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-avoid-react-fc-type.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-avoid-react-fc-type.json similarity index 96% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-avoid-react-fc-type.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-avoid-react-fc-type.json index fa79588a..fcad722e 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-avoid-react-fc-type.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-avoid-react-fc-type.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200927-avoid-react-fc-type","package":"web","title":"Avoid React.FC type","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n- Source: \n\n## Context\n\nFacebook has removed `React.FC` from their base template for a Typescript\nproject. The reason for this was that it was found to be an unnecessary feature\nwith next to no benefits in combination with a few downsides.\n\nThe main reasons were:\n\n- **children props** were implicitly added\n- **Generic Type** was not supported on children\n\nRead more about the removal in\n[this PR](https://github.com/facebook/create-react-app/pull/8177).\n\n## Decision\n\nTo keep our codebase up to date, we have decided that `React.FC` and `React.SFC`\nshould be avoided in our codebase when adding new code.\n\nHere is an example:\n\n```typescript\n/* Avoid this: */\ntype BadProps = { text: string };\nconst BadComponent: FC = ({ text, children }) => (\n
\n
{text}
\n {children}\n
\n);\n\n/* Do this instead: */\ntype GoodProps = { text: string; children?: React.ReactNode };\nconst GoodComponent = ({ text, children }: GoodProps) => (\n
\n
{text}
\n {children}\n
\n);\n```\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200927-avoid-react-fc-type.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200927-avoid-react-fc-type.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200927-avoid-react-fc-type.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200927-avoid-react-fc-type","package":"web","title":"Avoid React.FC type","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n- Source: \n\n## Context\n\nFacebook has removed `React.FC` from their base template for a Typescript\nproject. The reason for this was that it was found to be an unnecessary feature\nwith next to no benefits in combination with a few downsides.\n\nThe main reasons were:\n\n- **children props** were implicitly added\n- **Generic Type** was not supported on children\n\nRead more about the removal in\n[this PR](https://github.com/facebook/create-react-app/pull/8177).\n\n## Decision\n\nTo keep our codebase up to date, we have decided that `React.FC` and `React.SFC`\nshould be avoided in our codebase when adding new code.\n\nHere is an example:\n\n```typescript\n/* Avoid this: */\ntype BadProps = { text: string };\nconst BadComponent: FC = ({ text, children }) => (\n
\n
{text}
\n {children}\n
\n);\n\n/* Do this instead: */\ntype GoodProps = { text: string; children?: React.ReactNode };\nconst GoodComponent = ({ text, children }: GoodProps) => (\n
\n
{text}
\n {children}\n
\n);\n```\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200927-avoid-react-fc-type.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200927-avoid-react-fc-type.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200927-avoid-react-fc-type.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-use-react-hooks.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-use-react-hooks.json similarity index 94% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-use-react-hooks.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-use-react-hooks.json index 6ec59494..0d439606 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20200927-use-react-hooks.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20200927-use-react-hooks.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200927-use-react-hooks","package":"web","title":"Use React hooks","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will use React hooks and avoid class components.\n\n## Links\n\n- [Why We Switched to React Hooks](https://blog.bitsrc.io/why-we-switched-to-react-hooks-48798c42c7f)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200927-use-react-hooks.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200927-use-react-hooks.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200927-use-react-hooks.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20200927-use-react-hooks","package":"web","title":"Use React hooks","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Decision\n\nWe will use React hooks and avoid class components.\n\n## Links\n\n- [Why We Switched to React Hooks](https://blog.bitsrc.io/why-we-switched-to-react-hooks-48798c42c7f)\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-09-27T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20200927-use-react-hooks.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20200927-use-react-hooks.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20200927-use-react-hooks.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20201007-next-js-persistent-layout-pattern.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20201007-next-js-persistent-layout-pattern.json similarity index 96% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20201007-next-js-persistent-layout-pattern.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20201007-next-js-persistent-layout-pattern.json index 83e704c8..eae1646d 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/web/20201007-next-js-persistent-layout-pattern.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/adr/web/20201007-next-js-persistent-layout-pattern.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20201007-next-js-persistent-layout-pattern","package":"web","title":"Next.js persistent layout pattern","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe don't want the menu scroll position to be changed when we navigate from one page to another.\n\n## Decision\n\nWe will use the [Next.js persistent layout pattern](https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/).\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-07T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"web/20201007-next-js-persistent-layout-pattern","package":"web","title":"Next.js persistent layout pattern","status":"accepted","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nWe don't want the menu scroll position to be changed when we navigate from one page to another.\n\n## Decision\n\nWe will use the [Next.js persistent layout pattern](https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/).\n"},"creationDate":"2020-09-25T16:34:23.000Z","lastEditDate":"2020-09-25T16:34:23.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2020-10-07T21:59:59.000Z","file":{"relativePath":"packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md","absolutePath":"/home/runner/work/log4brains/log4brains/packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/packages/web/docs/adr/20201007-next-js-persistent-layout-pattern.md"}},"l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/index.json b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/index.json similarity index 61% rename from adr/_next/data/7xFMxN3EfFtzL5yajT5sc/index.json rename to adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/index.json index b2d8374f..c83b0ef3 100644 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/index.json +++ b/adr/_next/data/5_fT0tt-Z_QtKwGblXfgp/index.json @@ -1 +1 @@ -{"pageProps":{"projectName":"Log4brains","adrs":[{"slug":"20200924-use-markdown-architectural-decision-records","package":null,"title":"Use Markdown Architectural Decision Records","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-24T21:59:59.000Z"},{"slug":"20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna","package":null,"title":"Multi-packages architecture in a monorepo with Yarn and Lerna","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"web/20200925-use-nextjs-for-static-site-generation","package":"web","title":"Use Next.js for Static Site Generation","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"20200925-use-prettier-eslint-airbnb-for-the-code-style","package":null,"title":"Use Prettier-ESLint Airbnb for the code style","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"web/20200926-react-file-structure-organized-by-feature","package":"web","title":"React file structure organized by feature","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-26T21:59:59.000Z"},{"slug":"20200926-use-the-adr-number-as-its-unique-id","package":null,"title":"Use the ADR number as its unique ID","status":"superseded","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-26T21:59:59.000Z"},{"slug":"20200927-avoid-default-exports","package":null,"title":"Avoid default exports","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"web/20200927-avoid-react-fc-type","package":"web","title":"Avoid React.FC type","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"web/20200927-use-react-hooks","package":"web","title":"Use React hooks","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"core/20201002-use-explicit-architecture-and-ddd-for-the-core-api","package":"core","title":"Use Explicit Architecture and DDD for the core API","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-02T21:59:59.000Z"},{"slug":"core/20201003-markdown-parsing-is-part-of-the-domain","package":"core","title":"Markdown parsing is part of the domain","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-03T21:59:59.000Z"},{"slug":"web/20201007-next-js-persistent-layout-pattern","package":"web","title":"Next.js persistent layout pattern","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-07T21:59:59.000Z"},{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-16T21:59:59.000Z"},{"slug":"20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx","package":null,"title":"The core API is responsible for enhancing the ADR markdown body with MDX","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-26T22:59:59.000Z"},{"slug":"core/20201027-adr-link-resolver-in-the-domain","package":"core","title":"ADR link resolver in the domain","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-27T22:59:59.000Z"},{"slug":"20201103-use-lunr-for-search","package":null,"title":"Use Lunr for search","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-11-03T22:59:59.000Z"},{"slug":"20210113-distribute-log4brains-as-a-global-npm-package","package":null,"title":"Distribute Log4brains as a global NPM package","status":"accepted","creationDate":"2021-01-13T17:48:47.000Z","publicationDate":"2021-01-13T22:59:59.000Z"},{"slug":"20240926-transition-to-simplified-git-flow","package":null,"title":"Transition to Simplified Git Flow","status":"draft","creationDate":"2024-10-28T10:13:28.000Z","publicationDate":"2024-09-26T21:59:59.000Z"}],"markdown":"\n\n# Architecture knowledge base\n\nWelcome πŸ‘‹ to the architecture knowledge base of Log4brains.\nYou will find here all the Architecture Decision Records (ADR) of the project.\n\n## Definition and purpose\n\n> An Architectural Decision (AD) is a software design choice that addresses a functional or non-functional requirement that is architecturally significant.\n> An Architectural Decision Record (ADR) captures a single AD, such as often done when writing personal notes or meeting minutes; the collection of ADRs created and maintained in a project constitutes its decision log.\n\nAn ADR is immutable: only its status can change (i.e., become deprecated or superseded). That way, you can become familiar with the whole project history just by reading its decision log in chronological order.\nMoreover, maintaining this documentation aims at:\n\n- πŸš€ Improving and speeding up the onboarding of a new team member\n- πŸ”­ Avoiding blind acceptance/reversal of a past decision (cf [Michael Nygard's famous article on ADRs](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions.html))\n- 🀝 Formalizing the decision process of the team\n\n## Usage\n\nThis website is automatically updated after a change on the `develop` branch of the project's Git repository, from the latest beta version of Log4brains.\nIn fact, the developers manage this documentation directly with markdown files located next to their code, so it is more convenient for them to keep it up-to-date.\nYou can browse the ADRs by using the left menu or the search bar.\n\nThe typical workflow of an ADR is the following:\n\n![ADR workflow](/l4b-static/adr-workflow.png)\n\nThe decision process is entirely collaborative and backed by pull requests.\n\n## More information\n\n- [Log4brains documentation](https://github.com/thomvaill/log4brains/tree/develop#readme)\n- [What is an ADR and why should you use them](https://github.com/thomvaill/log4brains/tree/develop#-what-is-an-adr-and-why-should-you-use-them)\n- [ADR GitHub organization](https://adr.github.io/)\n","l4bVersion":""},"__N_SSG":true} \ No newline at end of file +{"pageProps":{"projectName":"Log4brains","adrs":[{"slug":"20200924-use-markdown-architectural-decision-records","package":null,"title":"Use Markdown Architectural Decision Records","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-24T21:59:59.000Z"},{"slug":"20200925-multi-packages-architecture-in-a-monorepo-with-yarn-and-lerna","package":null,"title":"Multi-packages architecture in a monorepo with Yarn and Lerna","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"web/20200925-use-nextjs-for-static-site-generation","package":"web","title":"Use Next.js for Static Site Generation","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"20200925-use-prettier-eslint-airbnb-for-the-code-style","package":null,"title":"Use Prettier-ESLint Airbnb for the code style","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-25T21:59:59.000Z"},{"slug":"web/20200926-react-file-structure-organized-by-feature","package":"web","title":"React file structure organized by feature","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-26T21:59:59.000Z"},{"slug":"20200926-use-the-adr-number-as-its-unique-id","package":null,"title":"Use the ADR number as its unique ID","status":"superseded","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-26T21:59:59.000Z"},{"slug":"20200927-avoid-default-exports","package":null,"title":"Avoid default exports","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"web/20200927-avoid-react-fc-type","package":"web","title":"Avoid React.FC type","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"web/20200927-use-react-hooks","package":"web","title":"Use React hooks","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-09-27T21:59:59.000Z"},{"slug":"core/20201002-use-explicit-architecture-and-ddd-for-the-core-api","package":"core","title":"Use Explicit Architecture and DDD for the core API","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-02T21:59:59.000Z"},{"slug":"core/20201003-markdown-parsing-is-part-of-the-domain","package":"core","title":"Markdown parsing is part of the domain","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-03T21:59:59.000Z"},{"slug":"web/20201007-next-js-persistent-layout-pattern","package":"web","title":"Next.js persistent layout pattern","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-07T21:59:59.000Z"},{"slug":"20201016-use-the-adr-slug-as-its-unique-id","package":null,"title":"Use the ADR slug as its unique ID","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-16T21:59:59.000Z"},{"slug":"20201026-the-core-api-is-responsible-for-enhancing-the-adr-markdown-body-with-mdx","package":null,"title":"The core API is responsible for enhancing the ADR markdown body with MDX","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-26T22:59:59.000Z"},{"slug":"core/20201027-adr-link-resolver-in-the-domain","package":"core","title":"ADR link resolver in the domain","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-10-27T22:59:59.000Z"},{"slug":"20201103-use-lunr-for-search","package":null,"title":"Use Lunr for search","status":"accepted","creationDate":"2020-09-25T16:34:23.000Z","publicationDate":"2020-11-03T22:59:59.000Z"},{"slug":"20210113-distribute-log4brains-as-a-global-npm-package","package":null,"title":"Distribute Log4brains as a global NPM package","status":"accepted","creationDate":"2021-01-13T17:48:47.000Z","publicationDate":"2021-01-13T22:59:59.000Z"},{"slug":"20240926-transition-to-simplified-git-flow","package":null,"title":"Transition to Simplified Git Flow","status":"superseded","creationDate":"2024-10-28T10:13:28.000Z","publicationDate":"2024-09-26T21:59:59.000Z"},{"slug":"20241217-switch-back-to-github-flow","package":null,"title":"Switch back to GitHub Flow, but keeping the automated beta releases","status":"accepted","creationDate":"2024-12-17T11:14:06.000Z","publicationDate":"2024-12-17T22:59:59.000Z"}],"markdown":"\n\n# Architecture knowledge base\n\nWelcome πŸ‘‹ to the architecture knowledge base of Log4brains.\nYou will find here all the Architecture Decision Records (ADR) of the project.\n\n## Definition and purpose\n\n> An Architectural Decision (AD) is a software design choice that addresses a functional or non-functional requirement that is architecturally significant.\n> An Architectural Decision Record (ADR) captures a single AD, such as often done when writing personal notes or meeting minutes; the collection of ADRs created and maintained in a project constitutes its decision log.\n\nAn ADR is immutable: only its status can change (i.e., become deprecated or superseded). That way, you can become familiar with the whole project history just by reading its decision log in chronological order.\nMoreover, maintaining this documentation aims at:\n\n- πŸš€ Improving and speeding up the onboarding of a new team member\n- πŸ”­ Avoiding blind acceptance/reversal of a past decision (cf [Michael Nygard's famous article on ADRs](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions.html))\n- 🀝 Formalizing the decision process of the team\n\n## Usage\n\nThis website is automatically updated after a change on the `develop` branch of the project's Git repository, from the latest beta version of Log4brains.\nIn fact, the developers manage this documentation directly with markdown files located next to their code, so it is more convenient for them to keep it up-to-date.\nYou can browse the ADRs by using the left menu or the search bar.\n\nThe typical workflow of an ADR is the following:\n\n![ADR workflow](/l4b-static/adr-workflow.png)\n\nThe decision process is entirely collaborative and backed by pull requests.\n\n## More information\n\n- [Log4brains documentation](https://github.com/thomvaill/log4brains/tree/develop#readme)\n- [What is an ADR and why should you use them](https://github.com/thomvaill/log4brains/tree/develop#-what-is-an-adr-and-why-should-you-use-them)\n- [ADR GitHub organization](https://adr.github.io/)\n","l4bVersion":"1.1.0"},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20240926-transition-to-simplified-git-flow.json b/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20240926-transition-to-simplified-git-flow.json deleted file mode 100644 index c3f6e38e..00000000 --- a/adr/_next/data/7xFMxN3EfFtzL5yajT5sc/adr/20240926-transition-to-simplified-git-flow.json +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"projectName":"Log4brains","currentAdr":{"slug":"20240926-transition-to-simplified-git-flow","package":null,"title":"Transition to Simplified Git Flow","status":"draft","supersededBy":null,"tags":[],"deciders":[],"body":{"enhancedMdx":"\n## Context and Problem Statement\n\nThe existing GitHub Flow process lacked clarity for stable releases and was overly manual, making it hard to delegate and streamline contributions. The need was for a more structured yet simple workflow that would facilitate testing and contributions while automating releases.\n\nAdditional context in [Discussion #108: Does this project need a new maintainer?](https://github.com/thomvaill/log4brains/discussions/108)\n\n## Decision Drivers\n\n- Need for automation in releases.\n- Be able to merge more quickly whithout breaking the stable branch, while making it possible for beta testers to test the new features.\n- Easier delegation to new maintainers.\n- Simplified yet structured process for contributors.\n- Clearer separation between ongoing development and stable releases.\n\n## Considered Options\n\n- Continue with GitHub Flow.\n- Transition to Simplified Git Flow.\n- Full Git Flow with release branches.\n\n## Decision Outcome\n\nChosen option: **Simplified Git Flow**, because it provides structure (separating development from stable releases) without excessive complexity. It also allows for automated canary/beta releases and easier delegation for merging feature branches to `develop`.\n\n### Positive Consequences\n\n- Clear separation of development (`develop`) and stable (`stable`) branches.\n- Automated beta releases from `develop` to facilitate early testing.\n- Allows contributors to participate in testing beta features and reduces the manual overhead of testing and releasing stable versions\n- Easier to delegate responsibilities (Canary vs. Core Maintainers, see [CONTRIBUTING.md](CONTRIBUTING.md)).\n- More streamlined versioning via Conventional Commits.\n\n### Negative Consequences\n\n- Contributors need to adjust to using `develop` for PRs instead of `stable`.\n- Slight learning curve for Conventional Commits.\n\n## Pros and Cons of the Options\n\n### Continue with GitHub Flow\n\n- Good, because it’s simpler with fewer branches.\n- Bad, because it lacks separation of development and stable code.\n- Bad, because manual testing and release increase bottlenecks.\n\n### Simplified Git Flow\n\n- Good, because it balances structure with simplicity.\n- Good, because it allows easier delegation to maintainers.\n- Bad, because it introduces a new `develop` branch, which may need adjustment for contributors.\n\n### Full Git Flow\n\n- Good, because it provides a full release management process.\n- Bad, because it adds unnecessary complexity for smaller open-source projects.\n"},"creationDate":"2024-10-28T10:13:28.000Z","lastEditDate":"2024-10-28T10:13:28.000Z","lastEditAuthor":"Thomas Vaillant","publicationDate":"2024-09-26T21:59:59.000Z","file":{"relativePath":"docs/adr/20240926-transition-to-simplified-git-flow.md","absolutePath":"/home/runner/work/log4brains/log4brains/docs/adr/20240926-transition-to-simplified-git-flow.md"},"repository":{"provider":"github","viewUrl":"https://github.com/thomvaill/log4brains/blob/master/docs/adr/20240926-transition-to-simplified-git-flow.md"}},"l4bVersion":""},"__N_SSG":true} \ No newline at end of file diff --git a/adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_buildManifest.js b/adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_buildManifest.js new file mode 100644 index 00000000..265135c6 --- /dev/null +++ b/adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST = (function(a,b,c,d,e){return {__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[a,b,c,d,e,"static\u002Fchunks\u002Fpages\u002Findex-ba31050b52f01cd89c5a.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error-4eb8f515a86439bfafff.js"],"/adr/[...slug]":[a,b,c,d,e,"static\u002Fchunks\u002Fpages\u002Fadr\u002F[...slug]-38695c2819a098ee4898.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fadr\u002F[...slug]"]}}("static\u002Fchunks\u002F364bddfb.28847971f0e02b167249.js","static\u002Fchunks\u002F3da477db.e49cd5277ed36ace32c1.js","static\u002Fchunks\u002F3b07cb59.4f0af644828e83722dc4.js","static\u002Fchunks\u002Fb4e962f4.986fa92c462dd01807e1.js","static\u002Fchunks\u002F45d2d314fc8da5e3d79852782e4a432ad4da6771.064ca2339afb25745cbe.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_ssgManifest.js b/adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_ssgManifest.js similarity index 100% rename from adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_ssgManifest.js rename to adr/_next/static/5_fT0tt-Z_QtKwGblXfgp/_ssgManifest.js diff --git a/adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_buildManifest.js b/adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_buildManifest.js deleted file mode 100644 index a7cb3375..00000000 --- a/adr/_next/static/7xFMxN3EfFtzL5yajT5sc/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST = (function(a,b,c,d,e){return {__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[a,b,c,d,e,"static\u002Fchunks\u002Fpages\u002Findex-a7dbb16e12aaa157ca03.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error-dae095f906abdfa483bc.js"],"/adr/[...slug]":[a,b,c,d,e,"static\u002Fchunks\u002Fpages\u002Fadr\u002F[...slug]-c443fc6e0e6aba0910b7.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fadr\u002F[...slug]"]}}("static\u002Fchunks\u002F858546a3.952caa2a5f1090446743.js","static\u002Fchunks\u002F580d9fe8.453754220469d52ed050.js","static\u002Fchunks\u002Fd4b94cf0.b6182e23194ff5c5e218.js","static\u002Fchunks\u002F7ede4f97.b879b9f12f9bd2413581.js","static\u002Fchunks\u002F45d2d314fc8da5e3d79852782e4a432ad4da6771.45cd41bc0da33630d641.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/adr/_next/static/chunks/364bddfb.28847971f0e02b167249.js b/adr/_next/static/chunks/364bddfb.28847971f0e02b167249.js new file mode 100644 index 00000000..9cdd2645 --- /dev/null +++ b/adr/_next/static/chunks/364bddfb.28847971f0e02b167249.js @@ -0,0 +1 @@ +(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[4],{"3EJy":function(t,c,n){"use strict";n.d(c,"a",(function(){return r})),n.d(c,"b",(function(){return i}));var a=n("1d1W");function r(t){return Object(a.a)({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"}}]})(t)}function i(t){return Object(a.a)({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z"}}]})(t)}}}]); \ No newline at end of file diff --git a/adr/_next/static/chunks/39d4b69998343c06c2f6d09982e0011fc76b6c1e.6868553c766a0e95aa6f.js b/adr/_next/static/chunks/39d4b69998343c06c2f6d09982e0011fc76b6c1e.6868553c766a0e95aa6f.js new file mode 100644 index 00000000..e9b5f788 --- /dev/null +++ b/adr/_next/static/chunks/39d4b69998343c06c2f6d09982e0011fc76b6c1e.6868553c766a0e95aa6f.js @@ -0,0 +1 @@ +(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[2],{"1lnu":function(e,n,t){"use strict";e.exports=t("vJt8")},D6Ey:function(e,n,t){"use strict";var r=t("pEjj"),l=t("FbBR"),a=t("1lnu");function o(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t