1 | --- |
---|
2 | title: Tahoe-LAFS - Nuts & Bolts Meetings |
---|
3 | |
---|
4 | --- |
---|
5 | |
---|
6 | # Tahoe-LAFS - Nuts & Bolts Meetings |
---|
7 | [Location](https://meet.jit.si/AccurateFiltersManipulateBefore) |
---|
8 | [Legacy meeting notes](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/WeeklyMeeting) |
---|
9 | [Consolidation of notes](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4104) |
---|
10 | |
---|
11 | ## Oct 22, 2024 |
---|
12 | ### Attendees |
---|
13 | |
---|
14 | - Blaise |
---|
15 | - Chris |
---|
16 | - hacklschorsch |
---|
17 | - Meejah |
---|
18 | |
---|
19 | |
---|
20 | ### New Items: |
---|
21 | #### Debian build |
---|
22 | Is there a set of tools we can use to validate our Debian builds? |
---|
23 | #### Decision: let's avoid including Debian-specific dependencies in upstream. |
---|
24 | |
---|
25 | |
---|
26 | #### Python 3.13 |
---|
27 | Jeff noticed a weird error with 3.13.rc2: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118#comment:4 |
---|
28 | Chris is checking compatiblity. 3.13 deprecated `cgi` module and there are dependencies on it. |
---|
29 | #### Decision: We should move cgi classes to use the Twisted APIs |
---|
30 | |
---|
31 | #### Testing NAT with pytest and libvirt Virtual Networking |
---|
32 | @meejah : testing NAT with pytest is a headache |
---|
33 | @blaisep : consider one of the networking emulation libraries like [pygmni](https://karneliuk.com/2021/08/pygnmi-10-rapid-and-reliable-network-testing-with-pytest-pygnmi-and-openconfig/) |
---|
34 | @chris : `headscale` is a open source tailscale/wireguard to VPN all-the-things (orthogonal, but interesting) |
---|
35 | https://archive.fosdem.org/2023/schedule/event/goheadscale/ |
---|
36 | |
---|
37 | |
---|
38 | --- |
---|
39 | |
---|
40 | ## Oct 15, 2024 |
---|
41 | ### Attendees |
---|
42 | |
---|
43 | - Blaise |
---|
44 | - B3n |
---|
45 | - Meejah |
---|
46 | - Jeff |
---|
47 | - Chris |
---|
48 | |
---|
49 | |
---|
50 | ### random notes |
---|
51 | |
---|
52 | - some discussion of security etc around Terraform-managed Gandi DNS |
---|
53 | - some meta-discussion of privacy of data for some use-cases |
---|
54 | - distributed forgejo (etc) PRs mentioned, discussed a bit |
---|
55 | - blocker: CI not working https://github.com/tahoe-lafs/tahoe-lafs/pull/1377 |
---|
56 | - Contributor/Developer [step-by-step guide](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118) |
---|
57 | - It would be good to have a good solution for "oops, I merged the wrong commit" scenario. [trac](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4124#ticket) |
---|
58 | - Twisted project used https://github.com/chevah/trac-to-github to migrate from trac to github |
---|
59 | |
---|
60 | #### Decisions: |
---|
61 | - convert legacy keywords to static labels |
---|
62 | - link to stored queries that contributors can reuse. |
---|
63 | - Become independent of [CircleCI](https://sr.ht/~meejah/magic-grid/) is an aspiration. Some brave soul should do it. |
---|
64 | - we'll need CircleCI until we can make CI run on the three platforms: Linux, Windows, Mac. |
---|
65 | - Look at using [magic grid](https://sr.ht/~meejah/magic-grid/) to automate the tutorials |
---|
66 | |
---|
67 | ### [Issue Tracking](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md) |
---|
68 | @b3n and @blaisep: Writing the [user stories](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md) for issue tracking revealed some scenarios we had not considered. The team should discuss the alternative and consequences. |
---|
69 | We learned: |
---|
70 | - There are additional, distinct, roles with associated privileges and activities. |
---|
71 | - Many issues are associated with each other using the free text `keywords` feature, which is not covered by the current migration. |
---|
72 | - Ticket Discovery: The View Ticket page has many pre-defined queries which have no direct counterpart outside of trac. |
---|
73 | |
---|
74 | ### Related links: |
---|
75 | - [Git Federation](https://drewdevault.com/2018/07/23/Git-is-already-distributed.html) |
---|
76 | - [Git over ActivityPub](https://forgefed.org/) |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | ### Gaps in the [Contributor guides](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118) |
---|
81 | A new contributor has no clear path to a usable PR. The instructions assume familiarity with the project. For example: |
---|
82 | - A contributor cannot find related tickets (WIP, previous solutions, dependencies, @meejah's tutorial automation ticket) |
---|
83 | - How to collaborate on tickets that relate to each other? |
---|
84 | - CI/CD: Which commands build the project? |
---|
85 | - ...It happens that Tox is the the entry point to CI (meejah: not really, but yes tox can run _some_ of the different environments a contributor would want) |
---|
86 | - When to use the various Tox targets? |
---|
87 | - The instructions for a PR should include everything that a contributor needs for sucessful review (ie. reviewer should not have to run additional tests). (meejah: current best effort here is probably https://github.com/tahoe-lafs/tahoe-lafs/blob/master/CONTRIBUTORS.rst) |
---|
88 | |
---|
89 | ### QUESTIONS: current contributor user stories |
---|
90 | - As a current contributor, when you want to find a ticket in Trac, do you: |
---|
91 | - Use a prepared query on the [View Ticket](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/ViewTickets) page? |
---|
92 | - Use the Custom query form? |
---|
93 | - Follow links inside an existing issue? |
---|
94 | |
---|
95 | |
---|
96 | |
---|
97 | --- |
---|
98 | |
---|
99 | ## Oct 8, 2024 |
---|
100 | ### Attendees |
---|
101 | |
---|
102 | - Blaise |
---|
103 | - B3n |
---|
104 | - Chris |
---|
105 | - hacklschorsch |
---|
106 | - ccx |
---|
107 | - Jeffhimself |
---|
108 | |
---|
109 | |
---|
110 | ### New Items |
---|
111 | |
---|
112 | |
---|
113 | Include tests in the description of an issue. |
---|
114 | - https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2050#comment:7 |
---|
115 | |
---|
116 | Proposed Docs config changes |
---|
117 | - create |
---|
118 | - docs/test (to store the docs-specific tests) |
---|
119 | - docs/source (to restrict Sphinx to the the docs content, exclude tests, etc.) |
---|
120 | - add sys.path to docs/source/conf.py (to find the source directory) |
---|
121 | - Makefile (run Sphinx against the source directory) |
---|
122 | - Makefile doc-testing (add target for `make doc-testing`) |
---|
123 | |
---|
124 | |
---|
125 | #### The step-by-step Developer Guide |
---|
126 | A failing test(s) for being ready to |
---|
127 | - build docs (`tox -e docs` ?) |
---|
128 | - run the tests? |
---|
129 | - submit a PR (nothing broken that the author couldnt' check themselves) |
---|
130 | - build a release |
---|
131 | |
---|
132 | #### Trac migration Developer Experience |
---|
133 | - @ccx Search? Associating trac issues to a feature is a PITA (labels, components are migrated) |
---|
134 | - @chris: developers should be able to see CI results; what is the integration of issue/commit/PR |
---|
135 | - @blaisep : reorder commits to match their tests. |
---|
136 | - Codeberg CI https://codeberg.org/Codeberg-CI/woodpecker |
---|
137 | |
---|
138 | ### Questions |
---|
139 | - How does tox know about the fixtures? |
---|
140 | - setup.py install returns: |
---|
141 | `error: The 'zope-interface>=5' distribution was not found and is required by Twisted, twisted |
---|
142 | ` (and I'm not supposed to run setup.py) |
---|
143 | |
---|
144 | --- |
---|
145 | |
---|
146 | ## Oct 1, 2024 |
---|
147 | ### Attendees |
---|
148 | |
---|
149 | - Blaise |
---|
150 | - B3n |
---|
151 | - Chris |
---|
152 | - hacklschorsch |
---|
153 | - Jeffhimself |
---|
154 | - Meejah |
---|
155 | - Pete |
---|
156 | |
---|
157 | ### New Items: |
---|
158 | |
---|
159 | - Release Checklist, simple PR edition? |
---|
160 | - Public Grid? |
---|
161 | - Public mailbox server? (MagicFolder) |
---|
162 | - Fowl and Dilation mentioned as unannounced apps related to file transfers |
---|
163 | |
---|
164 | |
---|
165 | #### Trac Migration docs |
---|
166 | - WIP https://github.com/tahoe-lafs/MoveOffTrac/tree/docs-update-24w40/docs |
---|
167 | - Docs tickets will serve as the initial spike to test new user (Blaisep) creation. |
---|
168 | - User Account management has some cases we want to excercise (forgot password, account confirmation, etc) |
---|
169 | - Redirecting legacy URLs to the new issue tracker. |
---|
170 | |
---|
171 | ### Prior Items: |
---|
172 | |
---|
173 | - Debian packaging in progress (@hacklschorsch will ask Debian Tahoe-LAFS maintainer about status, if we can help, and whether/what dependencies are currently missing in Debian) |
---|
174 | - fixed cryptography library issue https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4100#no1 |
---|
175 | |
---|
176 | #### Dependency management |
---|
177 | |
---|
178 | - "Tahoe is an app, so we shouldn't pin dependencies" @pete |
---|
179 | |
---|
180 | #### related projects |
---|
181 | - "Git with you": Peer to Peer git colab (not via github) using pairon (?) |
---|
182 | - [Dulwich](https://www.dulwich.io/docs/#getting-started) is a python implementation of git |
---|
183 | - https://meejah.ca/blog/wizard-gardens-vision |
---|
184 | - [Copybin](https://carml.readthedocs.io/en/latest/command-copybin.html), but private |
---|
185 | - https://magic-folder.readthedocs.io/en/latest/invites.html#invites |
---|
186 | - Brian's STUN server (?) |
---|
187 | - @pete mentioned research on [OCAP](https://github.com/ocapn/ocapn)s over [CRDT](https://github.com/alangibson/awesome-crdt)s |
---|
188 | - exposing ssh using [Inlets sshmux](https://inlets.dev/blog/2024/02/05/access-all-your-ssh-servers-with-sshmux.html) |
---|
189 | - https://www.wireguard.com/ |
---|
190 | - [ZCAP](https://w3c-ccg.github.io/zcap-spec/) is separate from Tahoe. [Github]() |
---|
191 | |
---|
192 | |
---|
193 | --- |
---|
194 | |
---|
195 | |
---|
196 | ## Sep 24, 2024 |
---|
197 | ### Attendees |
---|
198 | |
---|
199 | - Blaise |
---|
200 | - B3n |
---|
201 | - Chris |
---|
202 | - hacklschorsch |
---|
203 | - Jeffhimself |
---|
204 | - Meejah |
---|
205 | - Pete |
---|
206 | |
---|
207 | ### New Items: |
---|
208 | |
---|
209 | - The new tutorials and docs will default to systemd in examples for running as a service. |
---|
210 | - We'll start migrating issues. @b3n will provide a summarized plan next week. If necessary, we'll migrate to a self-hosted forgejo instanc. |
---|
211 | |
---|
212 | #### Migration: User Management topics |
---|
213 | - Account creation flow |
---|
214 | - Auto-registration OFF, |
---|
215 | - User Creation |
---|
216 | - Auto create if Github auth'd |
---|
217 | - Manual |
---|
218 | - Forgotten password flow (eg. Github IdP is down) |
---|
219 | |
---|
220 | #### Tahoe-S3 |
---|
221 | - A client which maps the finger tree into S3 numbers (and deal with S3 size limits) |
---|
222 | - Finger tree used to handle failure scenarios |
---|
223 | - Immutables only |
---|
224 | - Doesn't create the shares |
---|
225 | - Doesn't replace the native Tahoe storage server |
---|
226 | - A challenge to implement in Haskell because it requires intimate knowledge of Tahoe internals, REST and Foolscap APIs |
---|
227 | |
---|
228 | #### ADR: Tech stack decisions |
---|
229 | - Whither Haskell? |
---|
230 | - How much functionality is already implemented? |
---|
231 | - Haskell is a good high-level language. |
---|
232 | - Whither Rust? |
---|
233 | - If we build *low-level* components in Rust, there's opportunity for re-use. |
---|
234 | - Rust has lots of tooling |
---|
235 | |
---|
236 | #### Improving Immutables |
---|
237 | - Single block writers are the problem (@ccx) |
---|
238 | - blockless multi-writer implementation is the answer |
---|
239 | |
---|
240 | Speaking of block storage, @blaisep wonders if [k8s longhorn](https://longhorn.io/docs/1.7.1/references/longhorn-client-python/) integration may be a crowd pleaser. |
---|
241 | |
---|
242 | |
---|
243 | ## TILs |
---|
244 | |
---|
245 | - Duplicity has a backend option [`--tahoe`](https://fossies.org/linux/duplicity/duplicity/backends/tahoebackend.py) |
---|
246 | - Python pre-compiled for [iOS](https://github.com/PyO3/maturin/issues/1742#issuecomment-1686219705), courtesy of [maturin](https://www.maturin.rs/tutorial) |
---|
247 | - Room for improvement in describing our goals, roadmap milestones, features, etc. ("implement Tahoe-S3" vs "have a phone app") |
---|
248 | |
---|
249 | |
---|
250 | --- |
---|
251 | |
---|
252 | ## Sep 17, 2024 |
---|
253 | ### Attendees |
---|
254 | |
---|
255 | - Blaise |
---|
256 | - B3n |
---|
257 | - Pete |
---|
258 | |
---|
259 | ### New Items: |
---|
260 | |
---|
261 | #### Trac migration |
---|
262 | The time has come. @b3n requests that next week we set in motion the steps to leave trac and use .... something else. (Eventually, we may use GitHub, but before we can migrate to GitHub we need to clean up the issue data anyway). |
---|
263 | |
---|
264 | #### Provisioning and configuration management |
---|
265 | On a ddifferent note, most of the meeting was a discussion comparing provisioning and config management tools. @pete has a project where he needs to produce packaged images for various distributions. Ultimately, the images will run containerized applications. |
---|
266 | This is an area with too many choices. |
---|
267 | |
---|
268 | Some of the resources that came up in the discussion may be interesting to others: |
---|
269 | - [DeBock's Ansible Roles](https://robertdebock.nl/ansible.html#roles). These are tested, [using molecule](https://ansible.readthedocs.io/projects/molecule/), against several Linux distos and versions. |
---|
270 | - [Packer](https://www.packer.io/) from HashiCorp, takes the "images as code" approach. Concerns about a terraform-style licensing issue came up. |
---|
271 | - [Distrobox](https://distrobox.it/) to create containers with custom configurations. |
---|
272 | - [Toolbx](https://containertoolbx.org/) is a wrapper for [podman](https://docs.podman.io/en/latest/) and can be considered as a simpler [alternative to distrobox](https://discussion.fedoraproject.org/t/thread-about-switching-to-distrobox/89151/18?page=2) |
---|
273 | - Finally, the consensus is to create a `justfile` using [Just](https://just.systems/man/en/) to control the tasks and invoke tools like packer and ansible when necessary. Also, consider the trick that the [Fedora Atomic Desktop](https://getaurora.dev/) use to alias `ujust` to point to [admin-provided tools](https://universal-blue.discourse.group/t/just-reorganization-part-1-released/417#automation-and-scripting-3). |
---|
274 | - We agreed that [dagger engine](https://docs.dagger.io/quickstart/#topics) would be useful for interacting with the running containers, but this was out of scope. |
---|
275 | |
---|
276 | --- |
---|
277 | |
---|
278 | ## Sep 10, 2024 |
---|
279 | ### Attendees |
---|
280 | |
---|
281 | - Blaise |
---|
282 | - hacklschorsch |
---|
283 | - Chris |
---|
284 | - Ccx |
---|
285 | |
---|
286 | ### Step-by-step approach to getting started |
---|
287 | Instead of [showing everything at once](https://imgflip.com/i/930yve), build up the service one feature at a time. @blaisep has Incoming PR for https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4103 |
---|
288 | |
---|
289 | |
---|
290 | ### Express modularity using C4 notation for the diagrams |
---|
291 | - layers of abstraction Context, Container, Component, Code |
---|
292 | - [PlantUML includes](https://crashedmind.github.io/PlantUMLHitchhikersGuide/) C4 in the std lib |
---|
293 | - https://crashedmind.github.io/PlantUMLHitchhikersGuide/C4/C4Stdlib.html |
---|
294 | |
---|
295 | ### Describing Tahoe to local user groups |
---|
296 | As prep for presenting to larger conferences |
---|
297 | @blaisep offers to do user group talks (later: conference presentations) |
---|
298 | - Historical context (eg. why did they create SDK first? Surveillance capitalism, enshitification, etc.) |
---|
299 | - Use case examples (creating examples relevant to end users) |
---|
300 | - The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data. |
---|
301 | - Storage only is low value |
---|
302 | |
---|
303 | #### Challenges |
---|
304 | Either gaps in functionality or gaps in understanding |
---|
305 | - Describing the security boundaries (eg.vs corp walled gardens) |
---|
306 | - Key management, rotattion, revocation |
---|
307 | - The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data. |
---|
308 | - No generic writer( @ccx ) can't write everything to/from everywhere. |
---|
309 | |
---|
310 | #### Comparisons |
---|
311 | Describing Tahoe in terms of something they already know. |
---|
312 | - Nostr: @chris has written some [Nostr](https://nostr.org/) bots. It's not a dumb pipe in a security sense. It's meant to be censorship-resistance, not confidentiality. More of a brute force approach vs lots of cryptography. @hacklschorsch liked the way the Nostr delivery model (push data to your favorite relay...) is presented. |
---|
313 | Flo said NIP-104 will be a big improvement for private messaging |
---|
314 | https://github.com/nostr-protocol/nips/pull/1427 |
---|
315 | |
---|
316 | - IPFS: similar layer of abstraction. More client implementations. Scales differently? https://news.ycombinator.com/item?id=37750529 |
---|
317 | - Signal: but for storage ( _can Signal self host?_ ) The reference implementation is a useful app, SDKs, Open protocol, ubiquitous. |
---|
318 | - Syncthing: (peer-to-peer) but with decentralization and capabilities (@ccx) |
---|
319 | |
---|
320 | --- |
---|
321 | |
---|
322 | ## Sep 3, 2024 |
---|
323 | ### Attendees |
---|
324 | |
---|
325 | - b3n |
---|
326 | - Blaise |
---|
327 | - hacklschorsch |
---|
328 | - Meejah |
---|
329 | - Ccx |
---|
330 | |
---|
331 | |
---|
332 | ## Prior Items |
---|
333 | |
---|
334 | - Glossary items |
---|
335 | |
---|
336 | - Debian packaging maybe delayed because `pycddl` has never been packaged for Debian. We might make it in by the end of the year. @hacklschorsch |
---|
337 | - (we should check if any of our other dependencies have never been packaged for Debian @meejah) |
---|
338 | |
---|
339 | - Trac migration (see: https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac#ProsandConsofself-hostedvsSaaS) looking at the results of migration, @b3n noticed a number of issues with author attribution and broken reference links. |
---|
340 | - @b3n suggests that we consider a transition period where we run selfhosted and collaborate on the issues we care to migrate. (eg. the user creation needs to be automatic, yet if we set it to auto, then we also get junk accounts created) We can choose a threshold of noise and migrate or wait until it is perfect. |
---|
341 | - "Our trac instance has defferred maintenance and accummulated cruft over the years. The community wants to retain the option to selfhost, even if we choose not to. So if it makes sense to self host, then we can exercise that option." @meejah |
---|
342 | |
---|
343 | - @hacklschorsch: Can we lower the Tahoe-LAFS merge process turnaround time? |
---|
344 | - Optimistic Merging / other ideas for the Tahoe-LAFS GitHub repo? to make contributing leaner/more fun |
---|
345 | - meejah: A PR that is green and has approvals is already merged quickly now. If not, write on IRC |
---|
346 | - Currently, meejah is the only active committer in Tahoe-LAFS. The committers agree it would be good to have more committers, but it's not an easy task. Blaise nominates ccx, but ccx does not have time right now. |
---|
347 | |
---|
348 | |
---|
349 | ## New items |
---|
350 | |
---|
351 | - Veilid: is it real, where are the intersections? |
---|
352 | |
---|
353 | @ccx : it's a library which bundles a number of p2p protocols. No existing app yet. |
---|
354 | |
---|
355 | @meejah : played with ethersync and he made it do a thing. It's early and doesn't do anything yet. For instance, no one would install MagicWormhole if they couldn't do file sharing. |
---|
356 | |
---|
357 | ### Making it easier to develop on Tahoe |
---|
358 | Separation of concerns, breaking tahoe into modules would be a good next move. @ccx (@blaise start a trac issue?) |
---|
359 | |
---|
360 | --- |
---|
361 | |
---|
362 | ## August 27, 2024 |
---|
363 | ### Attendees |
---|
364 | |
---|
365 | - b3n |
---|
366 | - Chris |
---|
367 | - hacklschorsch |
---|
368 | - Meejah |
---|
369 | - Pete |
---|
370 | |
---|
371 | ### Updates |
---|
372 | |
---|
373 | - Flo |
---|
374 | - LA wants to hire a senior Haskeller to work on LAFS |
---|
375 | - iOS: Obsidian is still investigating the "illegal instruction" compiler/linker issue |
---|
376 | - Wrote some eMails back and forth with the Debian Tahoe-LAFS maintainer: Would be great if 1.20 would be clean of Python 2 code so it can be included in Debian again. Also need to look at Debian Trixie code freeze date |
---|
377 | - Works with Blaise on Tahoe-LAFS docs |
---|
378 | - ... and would like to pair more in general |
---|
379 | |
---|
380 | - Chris |
---|
381 | - published a Rust crate for LAFS: https://crates.io/crates/lafs |
---|
382 | source repo: https://github.com/crwood/lafs |
---|
383 | - Local and much faster than the Python equivalent (.25s instead of 24s on Chris' machine) |
---|
384 | - It comes with Python bindings |
---|
385 | |
---|
386 | - b3n |
---|
387 | - Codeberg importing issue acknowledged by them |
---|
388 | - Would like to discuss self-host vs. SaaS for the upcoming GitTea with Meejah |
---|
389 | |
---|
390 | - Meejah |
---|
391 | - Magic Wormhole protocol work |
---|
392 | - FOWL Policy & Permissions API mostly done, soon to be merged & released. |
---|
393 | - [Pear-On](https://sr.ht/~meejah/pear-on/) should work ATM - testers welcome |
---|
394 | |
---|
395 | |
---|
396 | ## Previous items |
---|
397 | |
---|
398 | @blaisep Now owns [17 trac tickets from the backlog](https://tahoe-lafs.org/trac/tahoe-lafs/query?owner=blaisep&status=assigned&status=new&status=reopened&id=&keywords=~&reporter=~&col=id&col=summary&col=keywords&col=reporter&col=status&col=owner&col=type&col=priority&col=milestone&col=changetime&desc=1&order=id) which are addressed in this month's effort to produce the getting started kit (docs and Artifacts) |
---|
399 | |
---|
400 | |
---|
401 | ## New Items |
---|
402 | |
---|
403 | - Trac [#4103](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4103#ticket) is a running summary of the items related to the Getting started guide. |
---|
404 | - Trac [4102](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4102#ticket) describes a workaround for a problem with one of the transitive dependencies (`eliotutils.py`). |
---|
405 | - @blaisep has limited availability until Sep 30 2024 |
---|
406 | |
---|
407 | |
---|
408 | --- |
---|
409 | |
---|
410 | ## August 20, 2024 |
---|
411 | ### Attendees |
---|
412 | |
---|
413 | Blaise |
---|
414 | b3n |
---|
415 | ccx |
---|
416 | Chris |
---|
417 | hacklschorsch |
---|
418 | |
---|
419 | ## Previous items |
---|
420 | |
---|
421 | ### WTF Circle CI? |
---|
422 | * Is it broken? Maybe drop it? |
---|
423 | * Do we have much logic in the Circle CI? |
---|
424 | * It might be tests failing, rather than a systemic fail (credentials, dependencies, etc) |
---|
425 | * "AMP server"? (twisted RPC framework) @ccx |
---|
426 | * * https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4 |
---|
427 | * https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4/jobs/86344 |
---|
428 | |
---|
429 | |
---|
430 | ### Towards a portable CI |
---|
431 | * keep logic in the repo |
---|
432 | * avoid huge Nix dependency (or maybe build a weekly Nix image) |
---|
433 | * https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html |
---|
434 | |
---|
435 | |
---|
436 | |
---|
437 | ### Describe the build process |
---|
438 | * add prose in the dev guide to the files in the repo describing the build (@blaise) |
---|
439 | * update the release checklist: https://tahoe-lafs.readthedocs.io/en/latest/release-checklist.html |
---|
440 | |
---|
441 | ### Mutables, Service of Happiness |
---|
442 | * @blaise asked where we were at with mutables... |
---|
443 | * using mutables as single writers (eg. Tahoe backup) |
---|
444 | * It's a big thing, eventually replace with a proper design for a multi-writer primitive |
---|
445 | * For now, stick with readonly or Magic Folder for examples and getting started guide. |
---|
446 | * > Mutables are not just even single-writer safe because partitions can cause rollbacks. Shouldn't be super common but it's still real world error case. @ccx |
---|
447 | |
---|
448 | ### [MoveOffTrac](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac) - [#4095](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095) |
---|
449 | * Trac dump from last month has been migrated on the self-hosted Forgejo [instance](https://forge.lafs.eval.latfa.net/tahoe-lafs/trac-2024-07-25). |
---|
450 | * Working on user mapping: trying to figure how to link trac users to Gitea/Forgejo users, with a mapping to the Github user if different! |
---|
451 | * New Forgejo instance (copy/paste from Gitea) to be closer to Codeberg: https://forge.lafs.eval.latfa.net/tahoe-lafs/ |
---|
452 | * Testing migration to Codeberg with pagination bug (workaround), performance issue (deadlock error) and user mapping (unlikely possible) |
---|
453 | * Keyoxide.org may help us to link all those account!? |
---|
454 | |
---|
455 | ## New Items |
---|
456 | |
---|
457 | * Blaisep has trac !!! |
---|
458 | * TIL: Trac use "htdigest" (@meejah "i'll put a note in ~trac") |
---|
459 | |
---|
460 | --- |
---|
461 | |
---|
462 | ## August 13, 2024 |
---|
463 | ### Attendees |
---|
464 | |
---|
465 | Blaise |
---|
466 | b3n |
---|
467 | ccx |
---|
468 | Chris |
---|
469 | hacklschorsch |
---|
470 | Pete |
---|
471 | |
---|
472 | ## Previous items |
---|
473 | |
---|
474 | - Blaise needs a trac account to CRUD issues, for docs, etc. |
---|
475 | - GitTea self register results in many spam accounts @b3n |
---|
476 | - We have users on Trac and users on GitHub, sometimes the names are different. @b3n |
---|
477 | - Trac Migration Plan [WIP](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac) |
---|
478 | - migrated Trac eval instance (https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-05-23/issues) |
---|
479 | |
---|
480 | ## New |
---|
481 | - Meejah might not have admin to [github.com/tahoe-lafs](https://github.com/tahoe-lafs/tahoe-lafs/pull/1370) but so far that isn't yet a problem (eg. if Circle CI creds need updating.) @blaisep |
---|
482 | - Consider using Google, GitHub auth for auto register CodeBerg accounts |
---|
483 | - Consider upgrading/self hosting Trac instance (maybe it's not so bad after all) |
---|
484 | - Could we make trac readonly and do new work on the ["demo" instance](https://www.lafs.eval.latfa.net/) instance? |
---|
485 | |
---|
486 | |
---|
487 | ### Migrating Issues: Goals and Constraints |
---|
488 | - Anything off of track is better |
---|
489 | - Github Issues are accessible, but there is risk of lock-in, enshitification |
---|
490 | - Gitea/Forgejo/CodeBerg is future-proof (no lock-in) |
---|
491 | - Inconsistent tribal knowledge about decisions made last year @blaisep et al. |
---|
492 | |
---|
493 | --- |
---|
494 | |
---|
495 | |
---|
496 | ## August 6, 2024 |
---|
497 | ### Attendees |
---|
498 | |
---|
499 | Blaise |
---|
500 | b3n |
---|
501 | Chris |
---|
502 | ccx |
---|
503 | hacklschorsch |
---|
504 | meejah |
---|
505 | Pete |
---|
506 | |
---|
507 | |
---|
508 | Thought leaders: |
---|
509 | Amber O'Hearn (not so much) |
---|
510 | Larry Lessig |
---|
511 | Brewster Kahle |
---|
512 | Christine_Lemmer-Webber (spritely) |
---|
513 | |
---|
514 | |
---|
515 | New Items: |
---|
516 | |
---|
517 | Pete's foundation doc: https://docs.google.com/document/d/1MpFUUB9sX-SA6rsHpq9ZkIhrnZaG3zwzI6KJ9I0VAgE/edit |
---|
518 | |
---|
519 | ## Comparables |
---|
520 | |
---|
521 | * https://spritely.institute/about/ |
---|
522 | * https://ocapn.org/ |
---|
523 | * https://darkcrystal.pw/ (meejah) |
---|
524 | * ISRG https://www.abetterinternet.org/ |
---|
525 | * https://divviup.org/ |
---|
526 | * https://sans-io.readthedocs.io/ |
---|
527 | |
---|
528 | |
---|
529 | ### Mission statements |
---|
530 | |
---|
531 | "Infrastructure for Libre, gratis, private, intentional composability and sharing " @Blaise , @meejah |
---|
532 | |
---|
533 | Device introduction @meejah |
---|
534 | |
---|
535 | "social infrastructure tools (sharing and composability to support differrent social structures and relationships)" |
---|
536 | Bootstrap social relations, dependency maps. |
---|
537 | @Chris |
---|
538 | |
---|
539 | secure sharing with least privilege (zero trust?) @ccx |
---|
540 | (Higher resolution, more ephemeral than app-level privs) |
---|
541 | https://roy.marples.name/blog/posts/capsicum_vs_pledge_final_thoughts |
---|
542 | |
---|
543 | Discoverable, "~~decentralized~~" (Autonomous?) / disconnected in nature (eg. TLS without the PKI) @Pete |
---|
544 | Provider independent |
---|
545 | |
---|
546 | |
---|
547 | ### Community Survey |
---|
548 | |
---|
549 | @Chris: Maybe do a poll "Should we build a Library or an application?" Right now it's the worst of both worlds. Maybe we could explore where we could get more bang; decompose into smaller building blocks may be better. |
---|
550 | eg, decouple wire protocol from the U I. |
---|
551 | https://sans-io.readthedocs.io/ @Pete |
---|
552 | |
---|
553 | Who is the audience? grandmas with photosharing? Political activists? crypto bros? |
---|
554 | |
---|
555 | --- |
---|
556 | |
---|
557 | ## July 30, 2024 |
---|
558 | ### Attendees |
---|
559 | |
---|
560 | Blaise |
---|
561 | hacklschorsch |
---|
562 | b3n |
---|
563 | Chris |
---|
564 | Pete |
---|
565 | ccx |
---|
566 | |
---|
567 | ## Highlights: |
---|
568 | * Project governance structure |
---|
569 | |
---|
570 | ## Agenda |
---|
571 | |
---|
572 | ### Previous topics: |
---|
573 | |
---|
574 | * Docs PR in progress |
---|
575 | |
---|
576 | ## New Topics: |
---|
577 | * A proposal for a governance structure (Pete) |
---|
578 | |
---|
579 | ### An endowment and governance structure |
---|
580 | |
---|
581 | * Align the Tahoe mission with the right institutional structure. |
---|
582 | * Similar cases: |
---|
583 | * The [Veillid Foundation](https://veilid.org/about-us/) is a very close analog. |
---|
584 | * https://www.djangoproject.com/foundation/ |
---|
585 | * https://foundation.mozilla.org/en/who-we-are/ |
---|
586 | * https://www.abetterinternet.org/documents/2023-ISRG-Annual-Report.pdf |
---|
587 | * https://www.abetterinternet.org/about/ |
---|
588 | * https://matrix.org/foundation/about/ |
---|
589 | * Fund some dedicated project support |
---|
590 | |
---|
591 | ### Who is the community? |
---|
592 | * Board members |
---|
593 | * What are the activities? |
---|
594 | * Intellectual property portfolio (trademarks, copyrights, patents)? |
---|
595 | |
---|
596 | ### Who is NOT the community? |
---|
597 | Where has the project stalled and why? |
---|
598 | Why do people drop in, get frustrated, and leave? |
---|
599 | What are the blockers for adoption and how can we overcome them. |
---|
600 | |
---|
601 | ### Tahoe public resources; what could we build next? |
---|
602 | * Public test grid ? |
---|
603 | * ZCap servers ? |
---|
604 | |
---|
605 | #### Other options for funding services |
---|
606 | |
---|
607 | * https://docs.opencollective.foundation/how-it-works/fees |
---|
608 | |
---|
609 | #### Dependent projects |
---|
610 | GridSync (golang) ? |
---|
611 | Magic Wormhole ? |
---|
612 | |
---|
613 | #### Dependencies |
---|
614 | * Twisted |
---|
615 | * Mutables |
---|
616 | * Python https://meta.pycqa.org/introduction.html |
---|
617 | |
---|
618 | --- |
---|
619 | |
---|
620 | ## July 23, 2024 |
---|
621 | |
---|
622 | ### Attendees |
---|
623 | |
---|
624 | Blaise |
---|
625 | hacklschorsch |
---|
626 | Meejah |
---|
627 | b3n |
---|
628 | Chris |
---|
629 | ccx |
---|
630 | |
---|
631 | |
---|
632 | ## Highlights: |
---|
633 | * Mutables would be a good thing for the Foundation to fund. |
---|
634 | * The goal of [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) is to replace foolscap. Not there yet. (sucks to require a node online) |
---|
635 | * Create project for client filesystem |
---|
636 | |
---|
637 | ## Agenda |
---|
638 | |
---|
639 | ### Previous topics: |
---|
640 | |
---|
641 | Meejah: |
---|
642 | * Trac disk space restored |
---|
643 | * Granted admin privs |
---|
644 | |
---|
645 | hacklschorsch: |
---|
646 | Mobile LAFS [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile) with draft description of Features and Scope. |
---|
647 | |
---|
648 | B3n: |
---|
649 | Next, Trac migration path (DNS, ) |
---|
650 | Codeberg bug |
---|
651 | |
---|
652 | |
---|
653 | ### New topics: |
---|
654 | * B3n: Prepare Trac migration operating instructions (DNS settings, etc) |
---|
655 | * B3n: Help Meejah create Trac account (for Blaise). |
---|
656 | * Decision: Let's try to make the single mobile code base work (hacklschorsch) |
---|
657 | * Deep integration with the OS is not MVP (hacklschorsch) |
---|
658 | * [Gitlab milestones](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/milestones/7#tab-issues) don't have the OS integration yet.(ccx) |
---|
659 | * Create FUSE module for the dev environment (ccx) |
---|
660 | |
---|
661 | ## Notes: |
---|
662 | |
---|
663 | Chris: |
---|
664 | * [Porting Tahoe hashlib](https://github.com/crwood/deterministic-keygen/issues/5) to Rust and found an issue: |
---|
665 | * To do a restore with user supplied keys, if a directory is already created we get an uncoordinated error. Possible solution is to derive the cap locally. |
---|
666 | * Curating a common set of test vectors |
---|
667 | |
---|
668 | #### Restore scenarios |
---|
669 | Todo: write up a description, describing permuted scenarios (Meejah, Chris) |
---|
670 | (We need better words to describe the operations and events) |
---|
671 | |
---|
672 | Four scenarios: |
---|
673 | * Client failed, grid is fine |
---|
674 | * Grid loses nodes |
---|
675 | * Grid loses partial data |
---|
676 | * Grid loses all data |
---|
677 | |
---|
678 | |
---|
679 | #### Mutables |
---|
680 | * Don't do service happiness (ccx's complaint) |
---|
681 | |
---|
682 | Can't detect all the restore scenarios. Sometimes all the shares end up on one server :frowning: |
---|
683 | What is the meaning of Happiness? Happiness is just a number (Meejah) |
---|
684 | |
---|
685 | #### Mobile |
---|
686 | * Need to write up the description in [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile) |
---|
687 | * We need to describe how much of the functionality |
---|
688 | * Foolscap requires a node online, [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) does not |
---|
689 | * "User defined grid" ? (ccx) |
---|
690 | * What if we had a gridsync client (b3n) |
---|
691 | * Deep integration with the OS is not MVP (hacklschorsch) |
---|
692 | * Obsidian has something called `backend` which is different. |
---|
693 | * [Obelisk overrides](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads) |
---|
694 | * Let's have good interface definitions (ccx) |
---|
695 | * [Gitlab repo](https://gitlab.com/tahoe-lafs/tahoe-great-black-swamp) Code |
---|
696 | |
---|
697 | |
---|
698 | #### File system browser? (ccx) |
---|
699 | * Can we use the native [mobile libraries](https://emanual.github.io/Android-docs/guide/topics/providers/document-provider.html)? |
---|
700 | * How much do we need in the GUI? |
---|
701 | * (https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads) |
---|
702 | |
---|
703 | #### Create project: Investigate FUSE File System Support (ccx) |
---|
704 | * Read/Only native client |
---|
705 | * Read/Only magic folder |
---|
706 | * Read/Write Magic Folder |
---|
707 | * Built on top of GBS downloader |
---|
708 | |
---|
709 | --- |
---|
710 | |
---|
711 | |
---|
712 | |
---|