summaryrefslogtreecommitdiff
path: root/blog/2021/10/23/meeting.mdwn
blob: 4b4ea2981f6c8c5d4be19de349c5c77569ee5367 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
[[!meta title="Iteration planning: October 23rd"]]
[[!tag meeting]]
[[!meta date="Sat, 23 Oct 2021 13:30:00 +0100"]]

[[!toc levels=2]]

# Review of actions from last meeting

Actions from last time, and their status are:

- Lars to create a label for blocking-high-profile-projects (name to
  be decided by Lars when he does it) and to label at least the
  Sequoia-PGP blockers if not also anything else he thinks may be
  blocking projects such as Rustup. **Half done, carrying**

- Lars to record decision about MSRV in `DECISIONS.md` in the
  `subplot` repository. **DONE**

- Lars and/or Daniel to add a Docker image for CI with Rust 1.48.0
  installed, or add it to the main image. **DONE**

- Lars and/or Daniel to change `.gitlab-ci.yml` to build and test
  using the 1.48.0 toolchain. **DONE**

- Lars and Daniel to discuss whether to change `./check` to take an
  option to specify which toolchain to use or to keep that outside of
  the script. **DONE** (We selected external control)

- Lars to refactor the changes for `build.rs` support, as discussed,
  and push an MR for it. **DONE**

- Lars should file an issue about the `get_basedir_from` changes, if
  the problem can be reproduced with the original code.
  **No reproduction, no issue filed**

- Lars to document decision that it's the user's responsibility to set
  up the environment in which tests are run. **DONE**

# Review of the iteration that has ended

[[!milestone 37]] had the following issued closed:

- [[!issue 219]] -- _Needs a release after 0.3.0 to test release automation_

Some progress was made on:

- [[!issue 198]] -- _Unify language handling for multi-impl-lang test suites_

The following issues remain open:

- [[!issue 198]] -- _Unify language handling for multi-impl-lang test suites_
- [[!issue 207]] -- _Release process is too manual, CI build of release .deb changes files_
- [[!issue 218]] -- _Automatable parts of release process are manual_
- [[!issue 238]] -- _Doesn't support `abstract` in document metadata_
- [[!issue 239]] -- _In metadata, `author` is a single string_

We moved the non-release-process remaining issues to the next milestone ([[!milestone 38]]) and then
closed off this iteration.

We removed [[!issue 207]] and [[!issue 218]] from the future iterations, and removed
[[!issue 207]] from the current goal.

# Review of the repositories

There are no MRs currently open in `subplot`, `subplot-web`, or `subplot-container-images`.

The `subplot-container-images` and `subplot-web` repositories do not
extra branches. The `subplot` repository has extra
branches:

- `subplot-rust` -- Daniel is keeping this around until he has
  completed the work on [[!issue 198]].
- `polyglot-docs` -- Daniel is working on [[!issue 198]] here.
- `docgen-cmark` -- Lars is working on making docgen use cmark
  rather than pandoc for the initial parse and processing.

We triggered the pipeline to build the container image for Subplot.
All `subplot` pipelines are clean.

# Current goal (goal 2; not changed for this iteration)

Subplot provides a set of libraries with identical capabilities in
each of the supported languages. Python remains a supported language.
Rust is promoted to supported-language status. Subplot will be tested
with all supported languages. In addition, any quality of life
improvements which can be done shall be done. This goal will be
considered complete when a release of Subplot has been made with the
unified language handling support complete.

# Issue review

We did a full review of all non-`someday-maybe` issues.

Changes we made include:

- [[!issue 126]] -- _Create a CI cronjob which attempts to `cargo update` everything_
  We opted to close this issue as we think the current release process
  is sufficient for now.
- [[!issue 133]] -- _No feature table comparing scenario runners from different codegen templates_
  We opted to mark this issue as blocked by [[!issue 198]] (multi-impl-lang docs)
- [[!issue 141]] -- _subplotlib: Needs better test suite_
  We opted to mark this as blocked by [[!issue 198]] and labelled it as `tracking`
  since we'll close it when the same subplot documents are testing runcmd, files,
  etc. for all language templates.
- [[!issue 180]] -- _Doesn't warn about unused embedded files_
  We agreed we should now be able to lint this as part of `codegen` so tentatively
  assigned it to Lars for this iteration.
- [[!issue 188]] -- _Old Subplot libraries have bindings with regex that could now be simple patterns_
  We tentatively assigned this to Lars for this iteration.
- [[!issue 213]] -- \_"Failure: document has no title" when there's duplicate keys"
  We are going to defer this to the new goal-3 as per below discussion notes
- [[!issue 214]] -- _Lacks examples and docs for using Rust step functions_
  We marked this as blocked by [[!issue 198]]
- [[!issue 220]] -- _Generated Rust test programs are hard to debug_
  We marked this as blocked by [[!issue 198]]
- [[!issue 221]] -- _Command line tool as insufficient logging_
  We made a note on the issue to the effect of the next steps.
  We added this to the current goal, but not to the iteration.
- [[!issue 222]] -- _Typeset output could indicate snippets are a continuation of the scenario and not a new scenario_
  We added the `typesetting` label to this and also `someday-maybe`.
- [[!issue 223]] -- _lib/runcmd lacks a generic "given an installed {name}" step_
  We added a blocked-by on [[!issue 198]]. We still need further discussion on this.
- [[!issue 224]] -- _Logging feature in the `subplot` binary needs tests_
  We updated the title to better indicate that this is about testing the behaviour of
  the `SUBPLOT_LOG*` environment variables.
  We also labelled it for goal 3.
- [[!issue 229]] -- _Licensing of Subplot libraries and subplotlib needs to be clarified_
  We agreed on MIT, Daniel removed the `actively-discussed` label. Daniel will take
  on the task of reaching out (and subsequently changing the licence terms) and so we
  assigned it to Daniel for this iteration.
- [[!issue 238]] -- _Doesn't support `abstract` in document metadata_
  Unassigned from Lars for now.
- [[!issue 239]] -- _In metadata, `author` is a single string_
  Unassigned from Lars for now.
- [[!issue 240]] -- _Could we mangle generated scenario function names in the Rust template?_
  We decided that the suggestions made on-issue were sufficient and closed the issue
- [[!issue 241]] and [[!issue 242]] -- Related to checking subplot, we made the
  two issues be linked. We assigned 242 to Lars for this iteration.

We left the docker-for-subplot issue alone, and subplot-web had no issues.

# Other discussion

## Reworking for goal 3

After significant discussion we agreed that it would be good to replace
the current approach of metadata-in-document with a separated metadata
YAML file. Essentially that file would be the input to Subplot, and it
would list, among other things, the set of markdown files which comprise
the scenario input.

Doing this would allow us to have a strict parsing of Subplot specific
metadata, but a more liberal parsing of optional Pandoc-specific metadata.
The `docgen` process would then include conversion and aggregation of this
metadata into the AST passed to Pandoc.

To this end, we decided that we should defer things currently labelled
as goal 3 until a putative goal 4, and we should define goal 3 as the
above work. We recorded some actions (see below) to this effect. We hope
that this will be the last major breaking change, but we cannot make that
guarantee.

One potentially beneficial side-effect of this work is that you will be
able to be confident of the action of running Pandoc against any individual
markdown file; though if you opted to include Pandoc specific metadata
in one of them, the result after `docgen` would be quite confusing because
we intend to use the `pulldown_cmark` crate for all Markdown parsing and it
has no provision for YAML metadata blocks. Part of this goal would be to
simplify our metadata handling so we would not want to try and support this
in-place metadata at all.

# Plan for next iteration

We opened [[!milestone 38]] to cover this iteration, with the
following issues:

- [[!issue 198]] -- _Unify language handling for multi-impl-lang test suites_
- [[!issue 229]] -- _Licensing of Subplot libraries and subplotlib needs to be clarified_
- [[!issue 242]] -- _`subplotlib` doesn't use `build.rs` script_
- [[!issue 188]] -- _Old Subplot libraries have bindings with regex that could now be simple patterns_
- [[!issue 180]] -- _Doesn't warn about unused embedded files_

# Other business

- We only just made a release, so no release planned for this iteration.

- We are not yet ready to file an RFP bug to get Subplot packaged for
  Debian. It will happen after we think we won't be making breaking
  changes anymore.

- We are not yet ready to make a whole code base review of Subplot.
  However we feel at least part of the new goal 3 will be reviewing a portion of the code.

- We will switch an issue based agenda when other people join the
  meeting.

- We relabelled our "reachout set for goal 2" to be for our new goal 3
  and we agreed to not reach out after this goal because our new goal 3
  is such a large break in API.

- Regarding a talk at FOSDEM, we have agreed that we want to give a
  talk, though we're not certain if it'll be at FOSDEM and we would
  want it to be suitable to give at other places as well. Given that
  we intend to set up a shared space to brainstorm the audience,
  and the intended knowledge that audience will gain from the talk.

- We agreed to continue with merge commits, and noted `git log --graph`
  as helpful, along with `git log --merges`. Once either someone
  queries this decision, or we have more project policy to document,
  we will write this down either in `CONTRIBUTING.md` or `DECISIONS.md`.

# AOB

- Regarding the `media` repository question - we believe this is
  premature at this point - once we are ready to write the talk
  mentioned above, it will be time for the repository.

- We are not going to do a release in this iteration anyway, so
  Lars suggests that whoever does the next release plays with
  `cargo release` since he has checked and its README suggests that
  it should support workspaces.

- We continue to believe that in part, helping high profile projects
  such as Sequoia-PGP or Rustup remains a big part of helping to
  convince people to use Subplot. Since we are about to make some
  more large breaking changes we do not want to convince more people
  into this camp yet. Writing the talk will be another way to
  increase visiblility of the project. More "real" examples may
  also be a good way to show the capabilities of Subplot.
  All of these things will be a lot of work, so we should be careful
  to not burn ourselves out on this.

# Actions

- Lars (and Daniel) to label at least the
  Sequoia-PGP blockers if not also anything else he thinks may be
  blocking projects such as Rustup.

- Daniel to shuffle goal3 to goal4 and create goal3 label for the
  purpose of tracking the work we discussed around redoing metadata
  as a separate file.

- Daniel to file a tracking issue for the metadata work, and assign
  it to Lars. Lars to then break down the work at some future point.

- Lars to set up a space for brainstorming the talk we want to give.

- Lars to file an issue with details of `cargo audit` and `cargo deny`
  and the intention to have a CI pipeline step which runs them.
  This may include filing an issue on the docker container to add the
  tooling.