way_of_working-for-hdi 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.alexignore +2 -0
- data/.alexrc +3 -0
- data/.mega-linter.yml +145 -0
- data/.rubocop +1 -0
- data/CHANGELOG.md +27 -0
- data/CODE_OF_CONDUCT.md +133 -0
- data/LICENSE.txt +21 -0
- data/README.md +77 -0
- data/Rakefile +16 -0
- data/code_safety.yml +314 -0
- data/docs/.gitignore +5 -0
- data/docs/404.md +11 -0
- data/docs/Gemfile +38 -0
- data/docs/Gemfile.lock +293 -0
- data/docs/_config.yml +90 -0
- data/docs/_includes/components/sidebar.html +69 -0
- data/docs/_includes/footer_custom.html +3 -0
- data/docs/_sass/color_schemes/hdi-light.scss +31 -0
- data/docs/_sass/custom/OneDarkJekyll.scss +203 -0
- data/docs/_sass/custom/a11y-colours.scss +4 -0
- data/docs/_sass/custom/color-scheme-shims.scss +66 -0
- data/docs/_sass/custom/custom.scss +60 -0
- data/docs/_sass/custom/setup.scss +3 -0
- data/docs/decisions/0000-use-markdown-any-decision-records.md +30 -0
- data/docs/decisions/0001-adoption-of-an-off-the-shelf-code-of-conduct.md +34 -0
- data/docs/decisions/0002-use-megalinter-for-linting-common-file-formats.md +41 -0
- data/docs/decisions/0003-use-keep-a-changelog-v1-1-as-the-format-for-changelogs.md +40 -0
- data/docs/decisions/0004-end-to-end-aka-system-testing.md +41 -0
- data/docs/decisions/0005-standardised-approach-to-versioning.md +27 -0
- data/docs/decisions/0006-standard-approach-to-automated-accessibility-testing.md +54 -0
- data/docs/decisions/0007-test-for-insensitive-and-inconsiderate-writing.md +32 -0
- data/docs/decisions/0008-software-as-a-service-saas-web-analytics-solution.md +30 -0
- data/docs/decisions/0009-pull-request-guidlines-and-template.md +31 -0
- data/docs/decisions/README.md +7 -0
- data/docs/decisions/adr-template.md +82 -0
- data/docs/decisions/index.md +48 -0
- data/docs/index.md +33 -0
- data/docs/pa11y.json +9 -0
- data/docs/way_of_working/accessibility-testing.md +29 -0
- data/docs/way_of_working/changelog.md +58 -0
- data/docs/way_of_working/code-linting/index.md +39 -0
- data/docs/way_of_working/code-linting/linters.md +153 -0
- data/docs/way_of_working/code-of-conduct.md +31 -0
- data/docs/way_of_working/decision-records.md +58 -0
- data/docs/way_of_working/end-to-end-testing.md +35 -0
- data/docs/way_of_working/inclusive-language.md +28 -0
- data/docs/way_of_working/pull-request-template-and-guidelines.md +18 -0
- data/docs/way_of_working/readme-badges.md +24 -0
- data/docs/way_of_working/versioning.md +25 -0
- data/lib/way_of_working/for/hdi/paths.rb +20 -0
- data/lib/way_of_working/for/hdi/plugin.rb +12 -0
- data/lib/way_of_working/for/hdi/version.rb +9 -0
- data/lib/way_of_working/for/hdi.rb +23 -0
- data/lib/way_of_working/rake_tasks/generators/init.rb +47 -0
- data/lib/way_of_working/rake_tasks.rb +22 -0
- metadata +257 -0
data/docs/_config.yml
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Welcome to Jekyll!
|
|
3
|
+
#
|
|
4
|
+
# This config file is meant for settings that affect your whole blog, values
|
|
5
|
+
# which you are expected to set up once and rarely edit after that. If you find
|
|
6
|
+
# yourself editing this file very often, consider using Jekyll's data files
|
|
7
|
+
# feature for the data you need to update frequently.
|
|
8
|
+
#
|
|
9
|
+
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
|
10
|
+
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
|
11
|
+
#
|
|
12
|
+
# If you need help with YAML syntax, here are some quick references for you:
|
|
13
|
+
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
|
14
|
+
# https://learnxinyminutes.com/docs/yaml/
|
|
15
|
+
#
|
|
16
|
+
# Site settings
|
|
17
|
+
# These are used to personalize your new site. If you look in the HTML files,
|
|
18
|
+
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
|
19
|
+
# You can create any custom variable you would like, and they will be accessible
|
|
20
|
+
# in the templates via {{ site.myvariable }}.
|
|
21
|
+
|
|
22
|
+
title: HDI Way Of Working
|
|
23
|
+
# email: your-email@example.com
|
|
24
|
+
# description: >- # this means to ignore newlines until "baseurl:"
|
|
25
|
+
# Write an awesome description for your new site here. You can edit this
|
|
26
|
+
# line in _config.yml. It will appear in your document head meta (for
|
|
27
|
+
# Google search results) and in your feed.xml site description.
|
|
28
|
+
# baseurl: "" # the subpath of your site, e.g. /blog
|
|
29
|
+
# url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
|
30
|
+
# twitter_username: jekyllrb
|
|
31
|
+
# github_username: jekyll
|
|
32
|
+
|
|
33
|
+
# Build settings
|
|
34
|
+
remote_theme: just-the-docs/just-the-docs@v0.4.0
|
|
35
|
+
plugins:
|
|
36
|
+
- jekyll-feed
|
|
37
|
+
|
|
38
|
+
# Exclude from processing.
|
|
39
|
+
# The following items will not be processed, by default.
|
|
40
|
+
# Any item listed under the `exclude:` key here will be automatically added to
|
|
41
|
+
# the internal "default list".
|
|
42
|
+
#
|
|
43
|
+
# Excluded items can be processed by explicitly listing the directories or
|
|
44
|
+
# their entries' file path in the `include:` list.
|
|
45
|
+
#
|
|
46
|
+
exclude:
|
|
47
|
+
- decisions/adr-template.md
|
|
48
|
+
# - .sass-cache/
|
|
49
|
+
# - .jekyll-cache/
|
|
50
|
+
# - gemfiles/
|
|
51
|
+
# - Gemfile
|
|
52
|
+
# - Gemfile.lock
|
|
53
|
+
# - node_modules/
|
|
54
|
+
# - vendor/bundle/
|
|
55
|
+
# - vendor/cache/
|
|
56
|
+
# - vendor/gems/
|
|
57
|
+
# - vendor/ruby/
|
|
58
|
+
|
|
59
|
+
color_scheme: hdi-light
|
|
60
|
+
|
|
61
|
+
callouts:
|
|
62
|
+
highlight:
|
|
63
|
+
color: yellow
|
|
64
|
+
important:
|
|
65
|
+
title: Important
|
|
66
|
+
color: blue
|
|
67
|
+
new:
|
|
68
|
+
title: New
|
|
69
|
+
color: green
|
|
70
|
+
note:
|
|
71
|
+
title: Note
|
|
72
|
+
color: purple
|
|
73
|
+
warning:
|
|
74
|
+
title: Warning
|
|
75
|
+
color: red
|
|
76
|
+
|
|
77
|
+
aux_links:
|
|
78
|
+
"HDI Way of Working on GitHub":
|
|
79
|
+
- "//github.com/healthdatainsight/way_of_working-for-hdi"
|
|
80
|
+
|
|
81
|
+
favicon_ico: "https://healthdatainsight.org.uk/wp-content/uploads/2020/11/cropped-hdi-favicon-1-32x32.png"
|
|
82
|
+
search_enabled: false
|
|
83
|
+
|
|
84
|
+
# Footer
|
|
85
|
+
gh_edit_link: true # show or hide edit this page link
|
|
86
|
+
gh_edit_link_text: "Edit this page on GitHub."
|
|
87
|
+
gh_edit_repository: "https://github.com/healthdatainsight/way_of_working-for-hdi" # the github URL for your repo
|
|
88
|
+
gh_edit_branch: main
|
|
89
|
+
gh_edit_source: docs
|
|
90
|
+
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<div class="side-bar">
|
|
2
|
+
<div class="site-header">
|
|
3
|
+
<a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
|
|
4
|
+
<a href="#" id="menu-button" class="site-button" aria-label="Open the menu">
|
|
5
|
+
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
|
|
6
|
+
</a>
|
|
7
|
+
</div>
|
|
8
|
+
<nav aria-label="Main" id="site-nav" class="site-nav">
|
|
9
|
+
{% assign pages_top_size = site.html_pages
|
|
10
|
+
| where_exp:"item", "item.title != nil"
|
|
11
|
+
| where_exp:"item", "item.parent == nil"
|
|
12
|
+
| where_exp:"item", "item.nav_exclude != true"
|
|
13
|
+
| size %}
|
|
14
|
+
{% if pages_top_size > 0 %}
|
|
15
|
+
{% include nav.html pages=site.html_pages key=nil %}
|
|
16
|
+
{% endif %}
|
|
17
|
+
{%- if site.nav_external_links -%}
|
|
18
|
+
<ul class="nav-list">
|
|
19
|
+
{%- for node in site.nav_external_links -%}
|
|
20
|
+
<li class="nav-list-item external">
|
|
21
|
+
<a href="{{ node.url | absolute_url }}" class="nav-list-link external">
|
|
22
|
+
{{ node.title }}
|
|
23
|
+
{% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
|
|
24
|
+
</a>
|
|
25
|
+
</li>
|
|
26
|
+
{%- endfor -%}
|
|
27
|
+
</ul>
|
|
28
|
+
{%- endif -%}
|
|
29
|
+
{% if site.just_the_docs.collections %}
|
|
30
|
+
{% assign collections_size = site.just_the_docs.collections | size %}
|
|
31
|
+
{% for collection_entry in site.just_the_docs.collections %}
|
|
32
|
+
{% assign collection_key = collection_entry[0] %}
|
|
33
|
+
{% assign collection_value = collection_entry[1] %}
|
|
34
|
+
{% assign collection = site[collection_key] %}
|
|
35
|
+
{% if collection_value.nav_exclude != true %}
|
|
36
|
+
{% if collections_size > 1 or pages_top_size > 0 %}
|
|
37
|
+
{% if collection_value.nav_fold == true %}
|
|
38
|
+
<ul class="nav-list nav-category-list">
|
|
39
|
+
<li class="nav-list-item{% if page.collection == collection_key %} active{% endif %}">
|
|
40
|
+
{%- if collection.size > 0 -%}
|
|
41
|
+
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a>
|
|
42
|
+
{%- endif -%}
|
|
43
|
+
<div class="nav-category">{{ collection_value.name }}</div>
|
|
44
|
+
{% include nav.html pages=collection key=collection_key %}
|
|
45
|
+
</li>
|
|
46
|
+
</ul>
|
|
47
|
+
{% else %}
|
|
48
|
+
<div class="nav-category">{{ collection_value.name }}</div>
|
|
49
|
+
{% include nav.html pages=collection key=collection_key %}
|
|
50
|
+
{% endif %}
|
|
51
|
+
{% else %}
|
|
52
|
+
{% include nav.html pages=collection key=collection_key %}
|
|
53
|
+
{% endif %}
|
|
54
|
+
{% endif %}
|
|
55
|
+
{% endfor %}
|
|
56
|
+
{% endif %}
|
|
57
|
+
</nav>
|
|
58
|
+
|
|
59
|
+
{% capture nav_footer_custom %}
|
|
60
|
+
{%- include nav_footer_custom.html -%}
|
|
61
|
+
{% endcapture %}
|
|
62
|
+
{% if nav_footer_custom != "" %}
|
|
63
|
+
{{ nav_footer_custom }}
|
|
64
|
+
{% else %}
|
|
65
|
+
<footer class="site-footer">
|
|
66
|
+
This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
|
|
67
|
+
</footer>
|
|
68
|
+
{% endif %}
|
|
69
|
+
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@import "../custom/a11y-colours";
|
|
2
|
+
|
|
3
|
+
$body-background-color: $white;
|
|
4
|
+
$body-heading-color: $a11y-darker-grey;
|
|
5
|
+
$body-text-color: $a11y-dark-grey;
|
|
6
|
+
$link-color: $a11y-purple;
|
|
7
|
+
$nav-child-link-color: $grey-dk-100;
|
|
8
|
+
$sidebar-color: $grey-lt-000;
|
|
9
|
+
// $base-button-color: #f7f7f7;
|
|
10
|
+
// $btn-primary-color: $purple-100;
|
|
11
|
+
$code-background-color: $a11y-light-grey;
|
|
12
|
+
$feedback-color: darken($sidebar-color, 3%);
|
|
13
|
+
// $table-background-color: $white;
|
|
14
|
+
// $search-background-color: $white;
|
|
15
|
+
// $search-result-preview-color: $grey-dk-000;
|
|
16
|
+
|
|
17
|
+
// $body-background-color: $white;
|
|
18
|
+
// $body-heading-color: red;
|
|
19
|
+
// $body-text-color: red;
|
|
20
|
+
// $link-color: red;
|
|
21
|
+
// $nav-child-link-color: red;
|
|
22
|
+
// $sidebar-color: yellow;
|
|
23
|
+
// // $base-button-color: #f7f7f7;
|
|
24
|
+
// // $btn-primary-color: $purple-100;
|
|
25
|
+
// $code-background-color: orange;
|
|
26
|
+
// $feedback-color: red;
|
|
27
|
+
// $table-background-color: red;
|
|
28
|
+
// $search-background-color: red;
|
|
29
|
+
// $search-result-preview-color: red;
|
|
30
|
+
|
|
31
|
+
// @import "./vendor/OneLightJekyll/syntax";
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme
|
|
2
|
+
/* stylelint-disable rule-empty-line-before */
|
|
3
|
+
|
|
4
|
+
.highlight,
|
|
5
|
+
pre.highlight {
|
|
6
|
+
background: #31343f;
|
|
7
|
+
color: #dee2f7;
|
|
8
|
+
}
|
|
9
|
+
.highlight pre {
|
|
10
|
+
background: #31343f;
|
|
11
|
+
}
|
|
12
|
+
.highlight .hll {
|
|
13
|
+
background: #31343f;
|
|
14
|
+
}
|
|
15
|
+
.highlight .c {
|
|
16
|
+
color: #63677e;
|
|
17
|
+
font-style: italic;
|
|
18
|
+
}
|
|
19
|
+
.highlight .err {
|
|
20
|
+
color: #960050;
|
|
21
|
+
background-color: #1e0010;
|
|
22
|
+
}
|
|
23
|
+
.highlight .k {
|
|
24
|
+
color: #e19ef5;
|
|
25
|
+
}
|
|
26
|
+
.highlight .l {
|
|
27
|
+
color: #a3eea0;
|
|
28
|
+
}
|
|
29
|
+
.highlight .n {
|
|
30
|
+
color: #dee2f7;
|
|
31
|
+
}
|
|
32
|
+
.highlight .o {
|
|
33
|
+
color: #dee2f7;
|
|
34
|
+
}
|
|
35
|
+
.highlight .p {
|
|
36
|
+
color: #dee2f7;
|
|
37
|
+
}
|
|
38
|
+
.highlight .cm {
|
|
39
|
+
color: #63677e;
|
|
40
|
+
font-style: italic;
|
|
41
|
+
}
|
|
42
|
+
.highlight .cp {
|
|
43
|
+
color: #63677e;
|
|
44
|
+
font-style: italic;
|
|
45
|
+
}
|
|
46
|
+
.highlight .c1 {
|
|
47
|
+
color: #63677e;
|
|
48
|
+
font-style: italic;
|
|
49
|
+
}
|
|
50
|
+
.highlight .cs {
|
|
51
|
+
color: #63677e;
|
|
52
|
+
font-style: italic;
|
|
53
|
+
}
|
|
54
|
+
.highlight .ge {
|
|
55
|
+
font-style: italic;
|
|
56
|
+
}
|
|
57
|
+
.highlight .gs {
|
|
58
|
+
font-weight: 700;
|
|
59
|
+
}
|
|
60
|
+
.highlight .kc {
|
|
61
|
+
color: #e19ef5;
|
|
62
|
+
}
|
|
63
|
+
.highlight .kd {
|
|
64
|
+
color: #e19ef5;
|
|
65
|
+
}
|
|
66
|
+
.highlight .kn {
|
|
67
|
+
color: #e19ef5;
|
|
68
|
+
}
|
|
69
|
+
.highlight .kp {
|
|
70
|
+
color: #e19ef5;
|
|
71
|
+
}
|
|
72
|
+
.highlight .kr {
|
|
73
|
+
color: #e19ef5;
|
|
74
|
+
}
|
|
75
|
+
.highlight .kt {
|
|
76
|
+
color: #e19ef5;
|
|
77
|
+
}
|
|
78
|
+
.highlight .ld {
|
|
79
|
+
color: #a3eea0;
|
|
80
|
+
}
|
|
81
|
+
.highlight .m {
|
|
82
|
+
color: #eddc96;
|
|
83
|
+
}
|
|
84
|
+
.highlight .s {
|
|
85
|
+
color: #a3eea0;
|
|
86
|
+
}
|
|
87
|
+
.highlight .na {
|
|
88
|
+
color: #eddc96;
|
|
89
|
+
}
|
|
90
|
+
.highlight .nb {
|
|
91
|
+
color: #fdce68;
|
|
92
|
+
}
|
|
93
|
+
.highlight .nc {
|
|
94
|
+
color: #fdce68;
|
|
95
|
+
}
|
|
96
|
+
.highlight .no {
|
|
97
|
+
color: #fdce68;
|
|
98
|
+
}
|
|
99
|
+
.highlight .nd {
|
|
100
|
+
color: #fdce68;
|
|
101
|
+
}
|
|
102
|
+
.highlight .ni {
|
|
103
|
+
color: #fdce68;
|
|
104
|
+
}
|
|
105
|
+
.highlight .ne {
|
|
106
|
+
color: #fdce68;
|
|
107
|
+
}
|
|
108
|
+
.highlight .nf {
|
|
109
|
+
color: #dee2f7;
|
|
110
|
+
}
|
|
111
|
+
.highlight .nl {
|
|
112
|
+
color: #fdce68;
|
|
113
|
+
}
|
|
114
|
+
.highlight .nn {
|
|
115
|
+
color: #dee2f7;
|
|
116
|
+
}
|
|
117
|
+
.highlight .nx {
|
|
118
|
+
color: #dee2f7;
|
|
119
|
+
}
|
|
120
|
+
.highlight .py {
|
|
121
|
+
color: #fdce68;
|
|
122
|
+
}
|
|
123
|
+
.highlight .nt {
|
|
124
|
+
color: #f9867b;
|
|
125
|
+
}
|
|
126
|
+
.highlight .nv {
|
|
127
|
+
color: #fdce68;
|
|
128
|
+
}
|
|
129
|
+
.highlight .ow {
|
|
130
|
+
font-weight: 700;
|
|
131
|
+
}
|
|
132
|
+
.highlight .w {
|
|
133
|
+
color: #f8f8f2;
|
|
134
|
+
}
|
|
135
|
+
.highlight .mf {
|
|
136
|
+
color: #eddc96;
|
|
137
|
+
}
|
|
138
|
+
.highlight .mh {
|
|
139
|
+
color: #eddc96;
|
|
140
|
+
}
|
|
141
|
+
.highlight .mi {
|
|
142
|
+
color: #eddc96;
|
|
143
|
+
}
|
|
144
|
+
.highlight .mo {
|
|
145
|
+
color: #eddc96;
|
|
146
|
+
}
|
|
147
|
+
.highlight .sb {
|
|
148
|
+
color: #a3eea0;
|
|
149
|
+
}
|
|
150
|
+
.highlight .sc {
|
|
151
|
+
color: #a3eea0;
|
|
152
|
+
}
|
|
153
|
+
.highlight .sd {
|
|
154
|
+
color: #a3eea0;
|
|
155
|
+
}
|
|
156
|
+
.highlight .s2 {
|
|
157
|
+
color: #a3eea0;
|
|
158
|
+
}
|
|
159
|
+
.highlight .se {
|
|
160
|
+
color: #a3eea0;
|
|
161
|
+
}
|
|
162
|
+
.highlight .sh {
|
|
163
|
+
color: #a3eea0;
|
|
164
|
+
}
|
|
165
|
+
.highlight .si {
|
|
166
|
+
color: #a3eea0;
|
|
167
|
+
}
|
|
168
|
+
.highlight .sx {
|
|
169
|
+
color: #a3eea0;
|
|
170
|
+
}
|
|
171
|
+
.highlight .sr {
|
|
172
|
+
color: #7be2f9;
|
|
173
|
+
}
|
|
174
|
+
.highlight .s1 {
|
|
175
|
+
color: #a3eea0;
|
|
176
|
+
}
|
|
177
|
+
.highlight .ss {
|
|
178
|
+
color: #7be2f9;
|
|
179
|
+
}
|
|
180
|
+
.highlight .bp {
|
|
181
|
+
color: #fdce68;
|
|
182
|
+
}
|
|
183
|
+
.highlight .vc {
|
|
184
|
+
color: #fdce68;
|
|
185
|
+
}
|
|
186
|
+
.highlight .vg {
|
|
187
|
+
color: #fdce68;
|
|
188
|
+
}
|
|
189
|
+
.highlight .vi {
|
|
190
|
+
color: #f9867b;
|
|
191
|
+
}
|
|
192
|
+
.highlight .il {
|
|
193
|
+
color: #eddc96;
|
|
194
|
+
}
|
|
195
|
+
.highlight .gu {
|
|
196
|
+
color: #75715e;
|
|
197
|
+
}
|
|
198
|
+
.highlight .gd {
|
|
199
|
+
color: #f92672;
|
|
200
|
+
}
|
|
201
|
+
.highlight .gi {
|
|
202
|
+
color: #a6e22e;
|
|
203
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// $body-background-color
|
|
2
|
+
// $body-heading-color
|
|
3
|
+
.site-title {
|
|
4
|
+
color: $body-heading-color;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// $body-text-color
|
|
8
|
+
.site-footer {
|
|
9
|
+
color: $body-text-color;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// $link-color
|
|
13
|
+
.nav-list .nav-list-item .nav-list-expander {
|
|
14
|
+
color: $link-color;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.main-content .anchor-heading svg {
|
|
18
|
+
color: $link-color;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// $nav-child-link-color
|
|
22
|
+
.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link {
|
|
23
|
+
color: $nav-child-link-color;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// $sidebar-color
|
|
27
|
+
// $base-button-color
|
|
28
|
+
// $btn-primary-color
|
|
29
|
+
// $code-background-color
|
|
30
|
+
// $feedback-color
|
|
31
|
+
// $table-background-color
|
|
32
|
+
// $search-background-color
|
|
33
|
+
// $search-result-preview-color
|
|
34
|
+
|
|
35
|
+
// $highlight-background-color
|
|
36
|
+
p.highlight, blockquote.highlight {
|
|
37
|
+
background: $highlight-background-color;
|
|
38
|
+
color: $body-heading-color;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// $important-background-color
|
|
42
|
+
p.important, blockquote.important {
|
|
43
|
+
background: $important-background-color;
|
|
44
|
+
color: $body-heading-color;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
p.note, blockquote.note {
|
|
48
|
+
background: $note-background-color;
|
|
49
|
+
color: $body-heading-color;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// footer p {
|
|
53
|
+
// color: $a11y-dark-grey;
|
|
54
|
+
// }
|
|
55
|
+
|
|
56
|
+
// div.highlight {
|
|
57
|
+
// background: $a11y-light-grey;
|
|
58
|
+
|
|
59
|
+
// code {
|
|
60
|
+
// color: $a11y-dark-grey;
|
|
61
|
+
// }
|
|
62
|
+
// }
|
|
63
|
+
|
|
64
|
+
// .language-plaintext {
|
|
65
|
+
// color: $a11y-dark-grey !important;
|
|
66
|
+
// }
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// {% if site.logo %}
|
|
2
|
+
// $logo: "{{ site.logo | relative_url }}";
|
|
3
|
+
// {% endif %}
|
|
4
|
+
// @import "./support/support";
|
|
5
|
+
// @import "./color_schemes/light";
|
|
6
|
+
// {% unless include.color_scheme == "light" %}
|
|
7
|
+
// @import "./color_schemes/{{ include.color_scheme }}";
|
|
8
|
+
// {% endunless %}
|
|
9
|
+
// @import "./custom/setup";
|
|
10
|
+
// @import "./modules";
|
|
11
|
+
// {% include css/callouts.scss.liquid color_scheme = include.color_scheme %}
|
|
12
|
+
// {% include css/custom.scss.liquid %}
|
|
13
|
+
|
|
14
|
+
@import "./color-scheme-shims";
|
|
15
|
+
|
|
16
|
+
@media (prefers-color-scheme: dark) {
|
|
17
|
+
@import "./a11y-colours";
|
|
18
|
+
// @import "./support/support";
|
|
19
|
+
|
|
20
|
+
// $body-background-color: $grey-dk-300;
|
|
21
|
+
$body-background-color: black;
|
|
22
|
+
$body-heading-color: $grey-lt-000;
|
|
23
|
+
$body-text-color: $grey-lt-300;
|
|
24
|
+
$link-color: #a48dff;
|
|
25
|
+
$nav-child-link-color: $grey-dk-000;
|
|
26
|
+
$sidebar-color: #0d1117;
|
|
27
|
+
// $base-button-color: $grey-dk-250;
|
|
28
|
+
// $btn-primary-color: $blue-200;
|
|
29
|
+
$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid
|
|
30
|
+
$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid
|
|
31
|
+
// $feedback-color: darken($sidebar-color, 3%);
|
|
32
|
+
$feedback-color: #0d1117;
|
|
33
|
+
$table-background-color: #111013;
|
|
34
|
+
// $search-background-color: $grey-dk-250;
|
|
35
|
+
// $search-result-preview-color: $grey-dk-000;
|
|
36
|
+
$border-color: $grey-dk-200;
|
|
37
|
+
|
|
38
|
+
@import "OneDarkJekyll"; // this is the one-dark-vivid atom syntax theme
|
|
39
|
+
|
|
40
|
+
$highlight-background-color: #3d3d2c;
|
|
41
|
+
$important-background-color: #132844;
|
|
42
|
+
$note-background-color: #211f41;
|
|
43
|
+
|
|
44
|
+
// Modules
|
|
45
|
+
@import "./base";
|
|
46
|
+
@import "./layout";
|
|
47
|
+
// @import "./content"; // contains a second charset
|
|
48
|
+
@import "./navigation";
|
|
49
|
+
// @import "./typography";
|
|
50
|
+
// @import "./labels";
|
|
51
|
+
// @import "./buttons";
|
|
52
|
+
// @import "./search";
|
|
53
|
+
@import "./tables";
|
|
54
|
+
@import "./code";
|
|
55
|
+
// @import "./utilities/utilities";
|
|
56
|
+
// @import "./print";
|
|
57
|
+
// @import "./skiptomain";
|
|
58
|
+
|
|
59
|
+
@import "./color-scheme-shims";
|
|
60
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
nav_order: 0
|
|
3
|
+
parent: Decision Records
|
|
4
|
+
---
|
|
5
|
+
# Use Markdown Any Decision Records
|
|
6
|
+
|
|
7
|
+
## Context and Problem Statement
|
|
8
|
+
|
|
9
|
+
We want to record any decisions made in this project independent whether decisions concern the architecture ("architectural decision record"), the code, or other fields.
|
|
10
|
+
Which format and structure should these records follow?
|
|
11
|
+
|
|
12
|
+
## Considered Options
|
|
13
|
+
|
|
14
|
+
* [MADR](https://adr.github.io/madr/) 3.0.0 – The Markdown Any Decision Records
|
|
15
|
+
* [Michael Nygard's template](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions) – The first incarnation of the term "ADR"
|
|
16
|
+
* [Sustainable Architectural Decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions) – The Y-Statements
|
|
17
|
+
* Other templates listed at <https://github.com/joelparkerhenderson/architecture_decision_record>
|
|
18
|
+
* Formless – No conventions for file format and structure
|
|
19
|
+
|
|
20
|
+
## Decision Outcome
|
|
21
|
+
|
|
22
|
+
Chosen option: "MADR 3.0.0", because
|
|
23
|
+
|
|
24
|
+
* Implicit assumptions should be made explicit.
|
|
25
|
+
Design documentation is important to enable people understanding the decisions later on.
|
|
26
|
+
See also [A rational design process: How and why to fake it](https://doi.org/10.1109/TSE.1986.6312940).
|
|
27
|
+
* MADR allows for structured capturing of any decision.
|
|
28
|
+
* The MADR format is lean and fits our development style.
|
|
29
|
+
* The MADR structure is comprehensible and facilitates usage & maintenance.
|
|
30
|
+
* The MADR project is vivid.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
nav_order: 1
|
|
3
|
+
parent: Decision Records
|
|
4
|
+
|
|
5
|
+
status: accepted
|
|
6
|
+
date: 2023-01-04
|
|
7
|
+
---
|
|
8
|
+
# Adoption of an off-the-shelf Code of Conduct
|
|
9
|
+
|
|
10
|
+
## Context and Problem Statement
|
|
11
|
+
|
|
12
|
+
We want an explicit and documented code of conduct to support people collaborating with us on our projects. We need contributors to understand the code and enforcement policy.
|
|
13
|
+
Which one should we adopt?
|
|
14
|
+
|
|
15
|
+
## Considered Options
|
|
16
|
+
|
|
17
|
+
* [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) v2.1
|
|
18
|
+
* [Citizen Code of Conduct](https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md)
|
|
19
|
+
* Formless – No conventions for code of conduct
|
|
20
|
+
|
|
21
|
+
## Decision Outcome
|
|
22
|
+
|
|
23
|
+
Chosen option: "Contributor Covenant", because
|
|
24
|
+
|
|
25
|
+
* It is used by tens of thousands of repos on GitHub, and is therefore likely the most recognised code of conduct of contributors.
|
|
26
|
+
* It contains enforcement guidelines and is well maintained.
|
|
27
|
+
* Citizen Code of Conduct hasn't been touched since 2018.
|
|
28
|
+
|
|
29
|
+
### Consequences
|
|
30
|
+
|
|
31
|
+
* Good, because it prevents us from needing to write one from scratch
|
|
32
|
+
* Neutral, because teams need to discuss the implications of adopting the code of conduct
|
|
33
|
+
* Neutral, because teams need to thoroughly read the [enforcement guidelines](https://www.contributor-covenant.org/version/2/1/code_of_conduct/#enforcement-guidelines) section of the code
|
|
34
|
+
* Neutral, because teams need to set up and monitor an enforcement contact method.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Configuration for the Jekyll template "Just the Docs"
|
|
3
|
+
nav_order: 2
|
|
4
|
+
parent: Decision Records
|
|
5
|
+
|
|
6
|
+
status: accepted
|
|
7
|
+
date: 2023-01-05
|
|
8
|
+
---
|
|
9
|
+
# Use MegaLinter for linting common file formats
|
|
10
|
+
|
|
11
|
+
## Context and Problem Statement
|
|
12
|
+
|
|
13
|
+
We want to consistently manage the running of a large number of linters against our codebase containing a wide range of file formats, providing projects with a preconfigured GitHub Action.
|
|
14
|
+
|
|
15
|
+
We also want to store our standard linter configurations centrally, so that contributors can comment on, and propose changes to, our coding standards. With coding standards we can move more quickly between projects. There are several tools which orchestrate this task. Which one should we adopt?
|
|
16
|
+
|
|
17
|
+
## Considered Options
|
|
18
|
+
|
|
19
|
+
* [Super-Linter](https://github.com/github/super-linter) for all languages, formats and tools.
|
|
20
|
+
* [MegaLinter](https://megalinter.io/) is an Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts in your repository sources, to ensure all your projects sources are clean and formatted whatever IDE/toolbox is used by their developers, powered by OX Security.
|
|
21
|
+
* Roll-our-own solution.
|
|
22
|
+
* Have no conventions for common approach to linting.
|
|
23
|
+
|
|
24
|
+
## Decision Outcome
|
|
25
|
+
|
|
26
|
+
Chosen option: "MegaLinter", because:
|
|
27
|
+
|
|
28
|
+
* The differences between MegaLinter and Super-Linter are [well documented](https://megalinter.io/latest/mega-linter-vs-super-linter), but having used both on this project first had, MegaLinter was more than 8 time faster in linting the project on my local machine than Super-Linter.
|
|
29
|
+
* The ability to enable/disable linters allows us to take a more bespoke approach where the standard linter isn't adequate. E.g. The Ruby linter, Rubocop, contained in the Docker container, doesn't have access to the Rails linting we would adopt to adhere to the existing NDRS standard.
|
|
30
|
+
|
|
31
|
+
Initially we will lint bash, c++, c#, coffeescript, dart, go, java, javascript, jsx, kotlin, make, python, R, rust, scala, SQL, swift, typescript, tsx, css, sass, html, json, markdown, xml, yaml, github actions, ansible, ARM, cloudformation, kubernetes, openapi, puppet and terraform files.
|
|
32
|
+
|
|
33
|
+
These have been chosen as an initial list where they have been, are or could be used in projects both internally and with partner organisations.
|
|
34
|
+
|
|
35
|
+
### Consequences
|
|
36
|
+
|
|
37
|
+
* Good, because we can spend less time writing a bespoke orchestration tool that would have to manage all the different output formats from all the different linters.
|
|
38
|
+
* Good, because we get secret scanning, security scanning of Infrastructure-as-Code code and dependency scanning as well as style checking.
|
|
39
|
+
* Neutral, because where a particular coding style has been adopted for a particular language, it can be adopted here.
|
|
40
|
+
* Neutral, because the rake task to run MegaLinter abstracts away any complexity with using Docker. Contributors only need to have Docker installed.
|
|
41
|
+
* Bad, because developers will need to adapt to the standard coding style, if it is unfamiliar to them.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Configuration for the Jekyll template "Just the Docs"
|
|
3
|
+
nav_order: 3
|
|
4
|
+
parent: Decision Records
|
|
5
|
+
|
|
6
|
+
# These are optional elements. Feel free to remove any of them.
|
|
7
|
+
status: accepted
|
|
8
|
+
date: 2023-01-31
|
|
9
|
+
---
|
|
10
|
+
# Use keep a changelog v1.1 as the format for changelogs
|
|
11
|
+
|
|
12
|
+
## Context and Problem Statement
|
|
13
|
+
|
|
14
|
+
There is enormous variation in the way changelogs are written. We want to adopt a standardised approach that enables them to be read by other contributors and be machine readable for conversion to HTML for end-users. We want one that isn't a dump of version control commit logs.
|
|
15
|
+
|
|
16
|
+
Which should we choose?
|
|
17
|
+
|
|
18
|
+
## Considered Options
|
|
19
|
+
|
|
20
|
+
* [keep a changelog v1.1.0](https://keepachangelog.com/en/1.1.0/)
|
|
21
|
+
* [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator#github-changelog-generator-)
|
|
22
|
+
* [GNU changelog style guide](https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs)
|
|
23
|
+
* Roll-our-own solution.
|
|
24
|
+
* Have no conventions for common approach to changelogs.
|
|
25
|
+
|
|
26
|
+
## Decision Outcome
|
|
27
|
+
|
|
28
|
+
Chosen option: "keep a changelog", because
|
|
29
|
+
|
|
30
|
+
* It is an accessible format, both for people and tooling.
|
|
31
|
+
* It is a human-written, plain English summary of changes, not a commit log dump.
|
|
32
|
+
* It has a well defined structure that makes automation easier.
|
|
33
|
+
* GNU changelog style is inadequate.
|
|
34
|
+
|
|
35
|
+
### Consequences
|
|
36
|
+
|
|
37
|
+
* Good, because we can programatically create a template changelog for the first time on new and existing projects
|
|
38
|
+
* Good, because scaffolds the changes needed when we tag a new release
|
|
39
|
+
* Good, because we can provide helpers (using existing tooling) than convert the changelog into HTML for inclusion in an end user system
|
|
40
|
+
* Bad, because, unlike fully automated tools like github-changelog-generator, effort is required to turn commit messages into plain English.
|