Ticket #4104: 20250617.md

File 20250617.md, 69.4 KB (added by blaisep, at 2025-06-17T20:27:18Z)

MeetingNotes?-2025-06-17

Line 
1---
2title: 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[This doc](https://hackmd.io/DzedQERvRLWaaaeo-gtDhA)
10[Consolidation of notes](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4104)
11[IRC Group: #tahoe-lafs@libera.chat]
12
13# Jun 17, 2025
14## Attendees
15- Blaise (@blaisep)
16- Chris
17- Flo (@hacklschorsch)
18- Jeff
19
20## Topics
21
22- Did some ensemble programming on the private_facts app and the CRUD Tahoe client library
23
24## Links
25
26- Curated Ansible roles by Robert de Bock https://robertdebock.nl/ansible.html#roles
27- https://tahoe-lafs.readthedocs.io/en/latest/frontends/webapi.html#writing-uploading-a-file
28
29
30# Jun 10, 2025
31## Attendees
32- Meejah
33- Blaise
34- Jeff
35
36## Topics
37
38### Tahoe test client WIP
39
40@jeff and @blaisep moved most of the integration tests from gridsync into the private facts repo and @hacklschorsch pointed out that the ultimately want to accomplish tw results:
41- package a self-contained ("embedded") tahoe dev server for easy mocking in tests.
42- emulate CRUD behavior using the REST interface (ie. the "right hand side" of the private facts proxy)
43This will help anyone developing TAHOE-LAFS to create tests without having to reimplement a client library.
44
45**Lesson Learned:** We had been trying to do both inside the same effort and decoupling them simplifies both the development and the usage.
46
47# Jun 3, 2025
48## Attendees
49- Meejah
50- Ben
51- Flo
52- Chris
53
54## Topics
55
56### Tor test suite fixes [#4167](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4167)
57
58- Also: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3943
59- PRs:
60  - [tahoe-lafs#1435](https://github.com/tahoe-lafs/tahoe-lafs/pull/1435)
61
62Flo reports some progress made with Adrian
63And also some problems with Chutney on Windows
64
65### Infrastructure as Code to manage DNS configurations [#4162](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162)
66
67Subdomain is not well supported by many providers (except AWS/Google and Azure...) - especially when it comes w/ DNSSEC.
68The current setup with Hetznr works ok, so we can move on while preparing the delegation of the 2nd level domain. 
69
70### Intermittent 502 response from Trac [#4178](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4178)
71The issue may not be too painfull, but Meejah suggests to ask others w/ access: Brian or JP.
72(meejah believes JP only has similar access, that is "trac" user only)
73
74### Manage shared secrets required to interact with the infrastructure [#4177](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4177)
75Proposing a git repo using `pass` to share secrets like GH bots and Hetzner account holding API tokens used for automation.
76
77### master tests don't work with wormhole 0.19.2 [#4180](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4180)
78
79CI is broken (again) and prevents further merge.
80meejah approved contribution https://github.com/tahoe-lafs/tahoe-lafs/pull/1438
81...and attempted to fix CI / errors from new, optional magic-wormhole arg: https://github.com/tahoe-lafs/tahoe-lafs/pull/1439
82
83# May 27, 2025
84
85## Attendees
86- Jeff
87- Ben
88- Blaise
89- Flo
90- Chris
91
92### Running Tahoe in production... a survival kit
93- What would we need to be confident about running Tahoe-LAFS in production?
94
95
96### Fantasy: Tahoe as a CDN
97- expose APIs (eg. minio, graphQL)
98- backend for proxy/cache (eg. Fastly, CloudFlare, Akamai)
99- back end for resilient services like Radicle https://radicle.xyz/guides/protocol or https://www.lothar.com/blog/55-Git-over-Tahoe-LAFS/
100
101### Infrastructure as Code to manage DNS configurations [#4162](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162)
102- DNS subzone support partly working with Hetzner
103- Considering changing to https://desec.io/ Free, OpenSource, EU based (but enforcing DNSSEC)
104- Or Hurricane Electric https://dns.he.net/
105
106### Intermittent 502 response from Trac [#4178](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4178)
107Monitoring Upptime was reporting intermittent 502
108But these errors have disappeared since May 24: maybe solved
109
110### Manage shared secrets required to interact with the infrastructure [#4177](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4177)
111Credential management discussion
112To reduce bus factor, consider storing the creds in a shared password vault
113
114- (eg. LA uses https://www.passwordstore.org/)
115- consider creating bot ids to own tokens instead of individuals (e.g. for upptime-infrastructure)
116- scope will be excluding secrets already managed with SOPS https://getsops.io/
117
118    [ ] Write up a list of requirements or use cases?
119   
120### Extracting the gridsync integration tests
121- Jeff copied most of the tests into the private facts repo
122- obstacles:
123    - without zkapauthorized, most tests fail, WITH zkap all but one PASS.
124    - python <=3.12, no wheels for os x >12 (without rebuild), tahoe <=1.18
125- Chris working on that for some of the remaining foundation deliverables.
126[ ] Save error messages to help troubleshoot.
127
128### Chris (and Flo) on tor integration tests
129- Chutney https://gitlab.torproject.org/tpo/core/chutney to spin up tests. Problems with windoze
130    - uses __Specification by Example__ (yay!!) https://www.chutney-testing.com/documentation/actions/introduction/
131- PRs 1435 and 1437
132- Goal: GBS (HTTP) client to support Tor
133
134Links:
135- Marimo is cool for tutorials and code demos: https://docs.marimo.io/guides/apps/
136
137# May 20, 2025
138
139## Attendees
140- Jeff
141- Ben
142
143## Notes
144- DNS configuration is partly defined as code (subdomain of.tahoe-lafs.org):
145  https://github.com/tahoe-lafs/infrastructure/blob/3cc71938674e0a26027363d21707bd3ee629389e/tf/core/dns_of-tl-org.tf
146- #4161 Forgejo has been provisionned for MoveOffTrac
147  https://forge.of.tahoe-lafs.org/
148  Feedback from Jeff: the home page does not show any project
149  Can we change that?
150- web-landing-page has also been provisionned too
151  https://home.of.tahoe-lafs.org/
152  But the code and CI/CD still need work (not more eval links)
153- legacy services from Linode also available here:
154  https://legacy.of.tahoe-lafs.org/
155- #4175 Upptime status page is live and can be improve:
156  https://tahoe-lafs.github.io/infrastructure-upptime/
157- #4176 Disk space on Linode has been freed by Meejah on Sat 18th, but we still get some 502 (also during this N&B)
158
159# May 13, 2025
160
161## Attendees
162- meejah
163- @hacklschorsch
164- Ben
165- Jeff
166- Chris
167
168## Notes
169- Flo made some fixes with Adrian to the mobile app, got the [man page finalized](https://github.com/tahoe-lafs/tahoe-lafs/pull/1433), tried last week to fix the CI but not totally done? Tor integration tests need some attention
170- Jeff reports some progress with gridsync tests in Private Facts
171- Flo recommends checking the [Readme on Gitlab for more info on how to use the mobile app](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile#usage). Also better to sideload APK [from CI](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/pipelines?page=1&scope=finished&ref=main) because it more up to date than the [Google Play version](https://play.google.com/store/apps/details?id=org.tahoe_lafs.tahoe_lafs_mobile)
172- Ben brings up [ticket 4162](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162), wanting to move to Hetzner but unable to do so fully because of lack of response from Brian. Meejah will follow up in comments to the issue itself
173- [Ticket 4175](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4175), improving monitoring in response to the site being down sometimes. Working on tahoe-upptime using [upptime](https://github.com/upptime/upptime)
174- Close to bringing the new site live but hampered by DNS issues (4162 above)
175
176## Links
177- https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile
178- https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/pipelines?page=1&scope=all&ref=main
179- https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162
180- https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4175
181- https://github.com/upptime/upptime
182
183# May 6, 2025
184
185## Attendees
186- Ben
187- Jeff
188- Chris
189
190## Notes
191- Ben shows off the newly redesigned welcome page layout - contains redirects to the legacy page for certain unmigrated content
192- Ben's DNS PR: https://github.com/tahoe-lafs/infrastructure/pull/49 in preparation for the migration
193- Brian difficult to get in touch with
194- Jeff reports successful creation of tahoe_server fixture from Gridsync source; Chris recommends tahoe_integration tests
195
196## Links
197- https://nip.io/
198
199
200# Apr 29, 2025
201
202## Attendees
203- @hacklschorsch
204- Jeff
205- Chris
206
207## Notes
208- Jeff: trying to use gridsync
209- Chris: Someone should make a generic Python client for Tahoe
210
211# Apr 22, 2025
212
213## Attendees
214- Ben
215- Chris
216- @hacklschorsch
217- Jeff
218
219## Notes
220
221- Ben: Setting up a Hetzner account for Tahoe-LAFS things, to be transferred to Tahoe-LAFS (whom exactly?)
222- Ben: No progress on website (besides opening a [repo](https://github.com/tahoe-lafs/web-landing-page)) or issue tracker (pending on required DNS changes)
223- Flo: Reporting on NURLv0/NURLv1, implementing NURLv0 in the Haskell client: https://gitlab.com/tahoe-lafs/tahoe-great-black-swamp/-/merge_requests/7
224- Jeff: Working on Private Facts integration test suite with Blaise, going from GridSync tests
225  - Chris: The GridSync abstraction of Tahoe should be fairly readable and high-level
226
227# Apr 15, 2025
228
229## Attendees
230- B3n
231- Blaise
232- Chris
233- @hacklschorsch
234- Jeff
235
236### Web Landing page code repo
237
238https://github.com/tahoe-lafs/web-landing-page
239
240likely going to home.tahoe-lafs.org
241
242### Web sockets support in Twisted
243
244Comment/Suggest at:
245https://github.com/twisted/twisted/pull/12397
246
247### Migration of tahoe-lafs.org DNS
248
249https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162#comment:14
250    TL;DR:
251    New records on gandi will be:
252
253        ```
254        tahoe-lafs.org.         60      IN      NS      hydrogen.ns.hetzner.com
255        tahoe-lafs.org.         60      IN      NS      helium.ns.hetzner.com
256        tahoe-lafs.org.         60      IN      NS      oxygen.ns.hetzner.com
257        ```
258
259## Links
260https://auto.sesser.at/ wicked fast & tiny web site
261https://github.com/hacklschorsch/auto.sesser.at the source code
262https://html5up.net/ free web code samples
263
264
265# Apr 8, 2025
266
267## Attendees
268- Jeff
269- Blaise
270- Chris
271- @hacklschorsch
272
273## Issue tracking Migration
274
275- [Preview of Forgejo instance (WIP)](https://forge.lafs.eval.latfa.net/tahoe-lafs/trac/issues)
276    - [How to pronounce Forgejo](https://forgejo.org/static/forgejo.mp4) ^^
277
278#### UNblock 4162: One step task Gandi authZ organization change: for DNS zone changes
279
280In response to the current proposal to [automate the DNS maintenance](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162#comment:7)
281we decided to make a tactical change: [update the records manually](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4162#comment:10) to expedite the transition.
282
283Note: this process will consolidate issue tracking (`trac` ) with source control (`git`) ! So the developer experience will be similar to Github/Codeberg/Gitea/Forgejo
284
285## Docs
286- Landing page (Project Home)
287    - [Preview (WIP)](https://www.lafs.eval.latfa.net/) (Jekyll static site generator)
288- Wiki hosting
289- Explain Tahoe loggin in 35 easy steps
290- Explain Configuration formats
291
292
293### Dreams of a python SDK
294
295- inspired by https://github.com/gridsync/gridsync/blob/main/tests/integration/test_magic_folder_integration.py
296- a pattern for process management https://github.com/gridsync/gridsync/blob/main/gridsync/supervisor.py
297- a pattern for monitoring processes and events: https://github.com/gridsync/gridsync/blob/29edd61fa7dbd856fe757f0f11e911ebf6a44cab/gridsync/monitor.py#L372
298- a pattern for filtering https://github.com/gridsync/gridsync/blob/main/gridsync/filter.py
299- qt event loop with twisted https://github.com/twisted/qt5reactor/blob/master/src/qt5reactor/core.py
300
301
302## Cool Links:
303https://radicle.xyz/ (interesting science project for a mirror)
304Gray Hat Python [pdf](https://github.com/ManhNho/Python-Books-for-Security/blob/master/Gray-Hat-Python-Python-Programming-For-Hackers-And-Reverse-Engineers.pdf)
305Python compiler https://nuitka.net/
306GPU without cuda https://www.modular.com/mojo
307
308---
309
310# Apr 1, 2025
311
312## Attendees
313- Blaise
314- Chris
315- Meejah
316- Jeff
317- @hacklschorsch
318
319### Integration testing
320
321- Unit tests use `twisted.trial`
322- Integration tests use pytest
323- [Tahoe-lafs](https://github.com/tahoe-lafs/tahoe-lafs/tree/master/integration)
324- [Magic Folder](https://github.com/tahoe-lafs/magic-folder/tree/main/integration)
325- [Link](https://github.com/tahoe-lafs/magic-folder/blob/main/integration/test_invite.py#L17)
326- @Chris: If interested, some similar integration tests from the gridsync codebase (pytest-based, with real nodes, files, invites, network connections, and references to "Alice" and "Bob"): https://github.com/gridsync/gridsync/blob/main/tests/integration/test_magic_folder_integration.py
327- Parmetrize tests with hypothesis: https://hypothesis.readthedocs.io/en/latest/
328- Contract testing
329    - Using Pact: https://docs.pact.io/getting_started/comparisons
330    - Using Deal: https://pypi.org/project/deal/
331
332### Storage Node Protocol: Foolscap vs GBS (http)
333 - "Are we backwards compatible with FURLs?"
334     - The [structure of fURLs and NURLs ](https://tahoe-lafs.readthedocs.io/en/latest/specifications/url.html#syntax) is similar (except for the trailing `v=1`)
335     - Version 0 NURLs are different?
336 - Ideally have a test suite _independent_ of the implementation so we could test implementations against the same criteria
337 - We don't have a full protocol test to validate that an implementation handles (GBS, etc)  properly.
338 - Long Term: web assembly for the browser to connect to storage servers.
339
340### Glossary items
341 - [Spookey (SPKI)](https://en.wikipedia.org/wiki/Simple_public-key_infrastructure) is used in fURLs and NURLs ([v0 and v1 a bit differently](https://tahoe-lafs.readthedocs.io/en/latest/specifications/url.html#versions)).
342 - Verified Fakes (vs Mocks): https://pythonspeed.com/articles/verified-fakes/
343
344### Links
345
346https://tahoe-lafs.readthedocs.io/en/latest/specifications/url.html#versions
347https://tahoe-lafs.readthedocs.io/en/latest/specifications/http-storage-node-protocol.html#transition
348https://github.com/tahoe-lafs/tahoe-lafs/blob/master/src/allmydata/protocol_switch.py
349https://hypothesis.readthedocs.io/en/latest/
350Autobahn for websockets: https://github.com/crossbario/autobahn-python
351
352# Mar 25, 2025
353
354?? Blaise Absent
355
356# Mar 18, 2025
357
358## Attendees
359- Blaise
360- Meejah
361- Jeff
362- @hacklschorsch
363
364
365#### Tahoe Client shipped for Android
366- hacklschorsch: [Tahoe-LAFS client in the Google Play Store](https://play.google.com/store/apps/details?id=org.tahoe_lafs.tahoe_lafs_mobile)
367- F-Droid on hold - currently we can't build the app fast enough.
368
369#### Fediverse interest in migration to Forgejo
370- @b3n contributed to [a mastodon thread](https://x0r.be/@b3n/114139604580878482) where people were looking for details on migrating to Forgejo.
371
372#### Flo's updates from BOBKonf conference
373- Yjs CRDTs would work great with an append-only capability; Maybe we can emulate that for now with a range request to a read/write-cap?
374  - Meejah: Multiple writers is the main reason for append-only cap, not past data security.
375- Wants help reviewing new man pages for the Tahoe-LAFS Debian package
376  - [grid-manager](https://github.com/tahoe-lafs/tahoe-lafs/pull/1432)
377  - Updates to tahoe man page (opening a PR soon)
378
379#### We need multi-writer append-only cap (but ...
380- Tahoe can do it now with one writer... if you promise to always write to the same cap
381- Tahoe can't support 2 or more writers.
382- CRDTs compare versions and DETECT conflicts
383- Magic folder will compare two versions (using clock timings) but it doesn't (yet) resolve conflicts.
384    - There is a PR will display the conflicts so a human can resolve them
385    - But it polls for an immutable
386    - Meejah: We need a cryptographer to add support and it would be a nice upgrade (to avoid polling)
387
388#### Capability theory
389- Ocap implementations are mostly about communication (Spritely Goblins, etc)
390- Tahoe is one of the few for data capabilities
391-
392
393### Links
394
395- [yjs](https://github.com/yjs/yjs)
396- https://yjs.dev/#features
397- Rust port of CRDT https://github.com/y-crdt/y-crdt
398- [Macaroons](https://github.com/rescrv/libmacaroons) is for data.
399
400
401# Mar 11, 2025
402
403### Attendees
404- Chris
405- Jeff
406- @hacklschorsch
407
408#### CI stuff
409Flo managed to successfully download and zip together all artifacts so they upload properly,
410But the Test PYPI token has expired and a new one needs to be generated:
411[Relevant PR](https://github.com/tahoe-lafs/zfec/pull/121)
412[Relevant issue](https://github.com/tahoe-lafs/zfec/issues/127)
413
414#### Mobile app now available on the Play store
415"Open testing" release at: https://play.google.com/store/apps/details?id=org.tahoe_lafs.tahoe_lafs_mobile
416
417Needs better getting-started documentation because it cannot create anything on its own
418
419#### A Haskell storage server implementation exists
420but can't communicate with the Python client, maybe versioning issues
421One issue is the eclectic logging of the Python implementation and the minimal logging of the Haskell implementation
422Indiana Jones style code archaeology reveals a vast trove of well-designed Haskell code in tahoe-great-black-swamp
423Just not sure of how to build the proper url
424
425#### Possibility of lightweight HTML/JS-only apps with Tahoe-LAFS Client HTTP API
426Just an html page that displays text or a text editor depending on read or write-cap
427Or a picture gallery
428Ecosystem of tiny web apps, like sandstorm?
429Potentially using the GBS server?
430These apps could themselves be stored in a Tahoe directory
431
432# Feb 18, 2025
433
434### Attendees
435- Blaise
436- Chris
437- Jeff
438- @hacklschorsch
439- Meejah
440
441#### Hosting multipoint video conferences.
442
443[Pair on](https://sr.ht/~meejah/pear-on/) (what sets up ttyshare in magic wormhole) does not have a video multiplexer.... Maybe VLC has a server?
444https://askubuntu.com/questions/56356/how-to-host-a-video-conference-with-vlvc
445> I just found out that you can use VLC and VLVC to hold video conferences between 2-10 people, and that sounds amazing, hopefully removing the heavy lean on Skype.
446https://www.videolan.org/vlc/libvlc.html
447http://breakthrusoftware.com/html/onlinedocs/kb/videomill/vlc.html
448Python bindings https://github.com/oaubert/python-vlc
449
450https://wiki.videolan.org/VideoLan_VideoConference/
451
452Jitsi: uses webRTC and that is hard to punch through wormholes.
453
454
455#### web sockets in Tahoe-lafs
456
457https://github.com/tahoe-lafs/tahoe-lafs/blob/master/ws_client.py
458
459#### Safer Serving Eliot logs: don't write to disk
460Write logs to in memory files to reduce exposure of sensitive data
461https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3006
462fixed https://github.com/tahoe-lafs/tahoe-lafs/pull/584
463
464#### Upload Helper
465- does the upload helper work?
466- is it still useful? are uploads an issue in 2025?
467
468#### Upload: Strategy of happiness
469
470https://tahoe-lafs.readthedocs.io/en/latest/specifications/servers-of-happiness.html#upload-strategy-of-happiness
471
472#### Deploying grid manager
473a solution for private storage
474Maybe use the test grid?
475
476#### No new capability types
477because we don't have cryptographers for cryptographic review.
478
479## Feb 11, 2025
480
481### Attendees
482- Blaise
483- Chris
484- Jeff
485
486#### Private Facts API discussion, Chris' suggestions
487- Consider using the CLI `alias` function for human readable references to capabilities.
488- Consider saving capabilities in a local secrets manager.
489
490## Feb 4, 2025
491
492### Attendees
493- Blaise
494- Chris
495- Jeff
496- Ben
497- Meejah
498
499#### FosDem Lightning talk
500- Flo presented
501- Link TBD
502- No analytics because we don't control the DNS name.
503
504#### Trac Migration
505- Brian on board with DNS redirection, etc
506
507#### Other items in progress, pending grant renewal
508- LAFS rust crate
509- Recovery workflow
510
511#### What sequence diagramming tools work well?
512- PlantUML is the most portable and future proof https://crashedmind.github.io/plantuml.github.io/
513- Mermaid is the most beautiful, but very JavaScripty https://mermaid.js.org/intro/
514- kroki.io is the umbrella project that runs everything https://kroki.io/
515- excalidraw is good for drag&drop with a bit of import/export https://excalidraw.com/
516
517## Jan 28, 2025
518
519### Attendees
520- Blaise
521- Chris
522- Flo (@hacklschorsch)
523- Jeff
524- Meejah
525- Pete
526
527
528#### Pete has news from "Magic Internet" !
529
530- Opportunity for differentiating the guiding principals from the legacy tech debt!
531- Python Tahoe is moving to Open Collective for managing grants
532- Itamar working on some outstanding 3.13 compatibility requirements
533- Magic Internet is focused on Magic Wormhole, Magic Cap
534- Building basic tools the internet needs but no one will fund
535    - eg. [libsodium](https://doc.libsodium.org/) is an implementation of the [NaCL](https://nacl.cr.yp.to/) protocols.
536    - Another comparable: [libssl](https://github.com/openbsd/src/blob/master/lib/libssl/ssl_lib.c).
537        - but easier to use, like https://github.com/mendsley/libssl
538
539- Magic Cap is "data capabilities" (inspired by OCap) - library for decentralized capabilities. (Networking, Permissions, Persistence)
540    - Rust for interop
541    - Python bindings (because we love python)
542    - Wasm for browsers (eg JavaScript, NodeJS)
543- Client-first
544- eg. "am I allowed to change these bytes?"
545    - Today: enforced by Linux
546    - Next: enforced by linux, determined by MagicCap
547- Independent of a server or provider.
548- Budgeting and roles, TBA
549- Public infrastructure and assets, Real Soon Now.
550
551#### FAQs
552- Is there a community meeting or some other way to follow Magic Cap?
553    - Not Yet. TBD.
554- Is Magic Cap a re-write of Tahoe-LAFS?
555    - No. Think of it as smalltalk on crack.
556- Are we making an oCap system?
557    - No. The libraries should include
558- What if I want to use Spritely goblins?
559    - Magic Cap could work with Spritely.
560- Do we know what the boundary of the API looks like (Files? AuthZ Permissions? Directories?). What level of abstraction would the libraries operate?
561    - TBD, but we'll avoid leaking some of the abstractions we have leaked in the past.
562
563
564#### Getting steeped in Rust
565- Chris wants to align his work on the Rust LAFS crate.
566- Wormhole Rust implementation has fallen behind.
567
568### Other links:
569Brian on Magic Wormhole:  https://www.youtube.com/watch?v=sulJG196BMw
570    -  Longer talk: https://www.youtube.com/watch?v=oFrTqQw0_3c
571-  Learn Rust with practical excercises: https://rustplatform.com/
572-  https://gitlab.redox-os.org/redox-os/cookbook
573-  https://blog.bovid.space/conceptual-intro-to-spritely-goblins.html
574-  https://en.wikipedia.org/wiki/Object-capability_model
575-  The [Cosmos SDK](https://docs.cosmos.network/main/learn/advanced/ocap)
576-  Carbonado is an archival format for encrypted, durable, compressed, provably replicated consensus-critical data, without need for a blockchain or powerful hardware. https://crates.io/crates/carbonado
577
578
579## Jan 21, 2025
580
581### Attendees
582- Blaise
583- Chris
584- Flo (@hacklschorsch)
585- Jeff
586- Meejah
587
588#### Chris: Rust implementation
589- Erasure, mutables...
590- Meejah asked about the fec crate
591
592#### Flo: New PubGrid online
593- New PubGrid online
594  - Couldn't keep old introducer fURL because of lost key, new fURL is in https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TestGrid
595- [Updates](https://github.com/tahoe-lafs/infrastructure/pull/6) merged into `main` branch of [IaaC repository](https://github.com/tahoe-lafs/infrastructure/)
596- Many improvement ideas already in https://github.com/tahoe-lafs/infrastructure/issues
597  - These tickets should be in Trac instead
598 
599#### Flo: Debian packages accepted
600- Great work from Andrius (maintainer for Debian packages)
601- Tahoe-LAFS incl. 8 (?) new dependencies have been accepted into Debian Testing!  This means we'll make it into the upcoming Debian release (and all downstream distros, see, for example, https://repology.org/project/tahoe-lafs/versions)
602- All tests pass with Python 3.12 and 3.13
603- Our code is continuously tested against packaging and Debian version of dependencies in https://github.com/tahoe-lafs/tahoe-lafs/pull/1426, to be merged
604- Cosmetic fixes ongoing regarding SyntaxWarnings of Python 3.12/3.13
605
606#### Flo: Tahoe-LAFS mobile app
607* Own grid functionality completed
608* Working on parsing plain Tahoe-LAFS Dircaps
609* Have [improved architecture of application](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/merge_requests/29)
610* Test version going Play store
611
612#### Private Facts sample app
613
614Decisions
615* example with key:values (write direct to Tahoe?)
616* example with sqlite (cache locally, save to Tahoe on exit)
617
618For simple pure tahoe, do the key:value
619
620Error Handling
621* examples at https://github.com/tahoe-lafs/magic-folder/blob/main/src/magic_folder/tahoe_client.py
622* Chris: check if the tahoe node is running vs a failure in transmission (eg. we got a connection refused error, is the node running? or is there a problem like a happiness quota)
623* [`get_welcome`](https://github.com/tahoe-lafs/magic-folder/blob/993f1ab478ca073c594b16973984ba485d9575d5/src/magic_folder/tahoe_client.py#L186) is the key to happiness
624
625
626#### Fedora packaging
627
628* they are having trouble with the python package: https://copr.fedorainfracloud.org/coprs/g/fedora-review/fedora-review-2327756-python-magic-wormhole/build/8295435/
629* Some consider the Rust implementation to be more current
630*
631---
632
633## Jan 14, 2025
634
635### Attendees
636- Blaise
637- Chris
638- Flo (@hacklschorsch)
639- Jeff
640- Meejah
641- Pete
642
643### Test Grid in progress!!
644
645- Change the dnd records
646- Decide the lifecycle of files,
647- expiration
648- governance (manage the introducers?)
649
650### Private Facts
651Blaise gave a tour of the latest description of the sample application:
652- using the Sphinx theme: https://github.com/pradyunsg/furo
653- ADR: use the `requests` library for the python examples
654- ADR: use sqlite for the "database"
655- ADR: use fastAPI for the app server
656- ADR: handle the "directory/filepath" metaphor later
657
658#### Decisions
659
660- Impose the file system metaphor later?
661- Use the test grid?
662
663### Roadmap: Tahoe Enhancement Proposal process. What work is the project likely to prioritize?
664As funding for the current work comes to an end, what are we working on and what are the Project priorities?
665What would most benefit the project?
666- Chris working on Rust implementation (does it have a future?)
667- Blaise working on project adoption (use cases, office hours, conferences, example apps)
668- Interoperability with other technologies
669
670
671## Jan 7, 2025
672### Attendees
673- Blaise
674- Ben
675- Chris
676- Flo
677- Jeff
678- Meejah
679- Shane
680- Sherry
681
682We exceeded the jitsi capacity. It struggled to handle the size of the meeting!
683
684#### Welcome Sherry
685
686
687## Dec 17, 2024
688### Attendees
689- Blaise
690- Flo
691- Jeff
692- Meejah
693
694
695
696### Previous Items
697
698#### CI is mostly green:
699- https://github.com/LeastAuthority/tahoe-lafs/tree/3484.test-build-images
700- https://github.com/LeastAuthority/tahoe-lafs/tree/4143.refresh-images-part2
701-
702
703### New Items
704
705#### 3rd party Integrations
706- Rodrigo has some scaffolding for a app using svelte.js in the repo for the sample app: https://github.com/blaisep/private_facts/blob/main/packages/src/routes/dashboard/%2Bpage.server.js
707
708#### Writing design docs
709@meejah:
710- Describe the characteristics of:
711    - Grid
712        - Protocols (GBS, foolscap, both)
713        - storage criteria
714    - Introducer
715        - member criteria
716        - service discovery
717        - announcements
718    - Membrane
719- Examples:
720    - https://github.com/tahoe-lafs/tahoe-lafs/blob/master/docs/managed-grid.rst
721    - https://github.com/tahoe-lafs/tahoe-lafs/blob/master/docs/specifications/http-storage-node-protocol.rst
722
723Need not be an implementation guide. It could be prose or something more structured, such as:
724- https://github.com/balanced/balanced-api/blob/master/features/callbacks.feature
725- https://github.com/behave/behave/blob/main/features/fixture.feature
726- https://github.com/balanced/balanced-api/blob/master/features/settlements.feature
727
728## Dec 10, 2024
729### Attendees
730- Ben
731- Blaise
732- Chris
733- Jeff
734- Meejah
735- Shane
736
737### New Items
738
739#### CI
740- Ben has CI working everywhere
741    - Github
742    - Local
743    - Backport changes to CircleCI
744    - **Except**: Inconsistency specific to Circle CI (even in Least Authority Org), possibly resource related on circle CI's k8s config
745- Trac issues
746    - 3484
747    - 4131
748    - 4135
749    - 4142
750    - 4143 (Updating the CI images)
751    - xxxx (Using the new images)
752    - xxxx (_Plan B_ bypassing the intermediate image build)
753
754Note: Tahoe-lafs github admin group has 6 members.
755
756#### Is building CI images in advance a premature optimization?
757- Circle CI creates "tahoelafsci/debian:11-py3.9" and uses that image to create the build.
758- It requires a periodical "click of the button" for the occasional rebuild of the CI images.
759- It does not actually provide reproducible builds.
760- We are not pinning images nor are we pinning wheels.
761- It *may* provide some faster builds (we have not quantified)
762- Reporoducibility vs (...) Currency (?)
763- @blaise: We should consider a separate repo/pipeline for CI images because their revision cycle is different from Tahoe-lafs
764- @meejah: there is not a lot of project or version specific code added to the docker images.
765- @meejah: I don't want to run ci against a previous frozen version. I want to run CI against the current version.
766- @meejah: useful to pull the latest platform, maybe pin the python.
767- @ben: we can fix what we currently have (the Dockerfile infrastructure) and consider making changes separately.
768- Ben will explore a PR building with the upstream images without the intermediate docker images.
769
770#### Consider pinning Python separately from platform
771
772- cache and pin the platform? (criteria?)
773- cache and pin the Python? (criteria?)
774
775
776
777## Dec 3, 2024
778### Attendees
779- Ben
780- Blaise
781- Flo
782- Shane
783- Meejah
784- Chris
785- Jeff
786
787
788#### We need a release, soon
789@hacklschorsch
790
791#### CI failures
792- @btology happy to migrate CI off CircleCI (we chose Circle for reliability, but that has changed)
793    - has a plan to move most of the unit tests [which currently fail on CircleCI](https://github.com/LeastAuthority/tahoe-lafs/actions/runs/12144760020/job/33864884211) over.
794    - Todo: Update fedora builder to fc41
795- Typecheck fails on `master` https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4115
796- Oracle Linux fails: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4135
797- Master branch does not build
798    - Integration tests do not run on master branch
799- Nix pacakge build does not work
800    - Too Slow:https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4126)
801    - Cachix does not have current images, so dependencies must be built from source.
802    - We need Cachix token [trac](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4134)
803    - We need access to the Cachix org to regnerate the token
804    - Do we care about nix?
805        - If someone needs the flake for Tahoe-lafs, eg (private storage?) they will fail.
806        - Maybe we consider that "downstream" and people can fix it.
807- PyPi: ownership for prod, but only JP has access to test.pypi
808- Ubuntu builder fails https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3949
809- We build wheels for Windows, Mac OS, Debian and PyPI
810- Should we decide which CI are "blockers"?
811    - Debian, Mac OS and Windows MUST be green
812    - If no one complains, then they dont block
813
814
815## Nov 26, 2024
816### Attendees
817
818- Ben
819- Blaise
820- Flo
821- Shane
822- Meejah
823- Chris
824
825### New Items:
826
827#### Tahoe Project open office hours
828- Consider a standing schedule for folks to drop in with questions and pairing.
829- Blaise is available to turn on the lights, start the coffee pot and arrange the chairs.
830- Meejah suggests 15:00 UTC might be a good time for Europe and North America.
831
832#### GridSync
833
834[Standalone magic-folder binaries fail due to missing win32com.shell import](https://github.com/gridsync/gridsync/issues/707)
835[PyInstaller/frozen tahoe executables fail to execute on macOS 13 due to missing libintl](https://github.com/gridsync/gridsync/issues/709)
836
837#### User Stories for Landing  Page: www.tahoe-lafs.com (and related Wiki content)
838- Describe the CRUD lifecycle
839    - Who does the CRUD ?
840    - What privs do they need?
841- Failure Scenarios:
842    - Host outages? (no response from host, page not found, ...)
843    - Content bugs? ()
844@hacklschorsch wants :
845    - static landing page sounds good
846    - enough redirect to preserve the original trac urls https://docs.gitlab.com/ee/user/project/pages/redirects.html
847   
848   
849- Wiki Pages are mostly reproducible
850    - Before:
851        - https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095
852    - After:
853        - https://forge.lafs.eval.latfa.net/tahoe-lafs/trac/issues/4095
854    - NOT reproducible:
855        - dynamic(ish) content like Roadmap,
856
857
858#### Broken CI updates
859
860- CircleCI keeps asking for an SSH key in some fork or PR!?
861- Flo thinks he has fixed most of CI issue,
862- but there is still a flaky systemtest which fails from time to time
863- Ben is trying to reproduce this flay part with GH actions
864
865- Refactor (big) tests, see https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4078 and then https://github.com/tahoe-lafs/tahoe-lafs/pull/1354
866    - Tracebacks get elided through Twisted, tracebacks get created at the deferred, yet we want them created from where they are deferred. ( [because](https://github.com/tahoe-lafs/tahoe-lafs/pull/1354/files#r1444822971) )
867    - @meejah: "The real problem may be that we're shutting it down too many times" and it does things after it has been stopped (eg. Add shares called after we deleted Shares)
868    - Differing seeds for random number generators can result in strange behaviour so @Chris points out that we can force `PYTHONHASHSEED=1` and force consistency.
869
870#### FOSDEM 2025
871
872- Flo and Ben would like to present some works (e.g.: Mobile, Tracker, Website),
873
874
875## Nov 19, 2024
876### Attendees
877
878- Blaise
879- Rodrigo
880- Meejah
881- Chris
882- Jeff
883- @hacklschorsch
884- Shane
885
886### New Items:
887
888#### User stories for ticketing system
889Meejah and Blaise have paired on the "admin" side user stories (e.g.: "as an admin, I do not expect to require access to the underlying host" eg. system upgrade, system users, etc.)
890
891#### SupaWiki and Tahoe for private content.
892
893- Describe the threat model. Be clear on the expectations resulting from the specific deployment mode.
894For example, with Desktop apps there is "Trust on every use" so it is "less secure" than locally installed code.
895
896@rodrigo explained that it is possible to conserve the principles in Tahoe. He had to read a lot to understand where the edges are and what he would need to implement in order to take advantage of the security model.
897
898@meejah: Let's pretend we have an available grid. Where would we keep the capability string, how would a patient expose data to the doctor?
899- Prefer the term "exposure" over trust. There is no trust in tahoe, just exposure.
900
901@Rodrigoplp: we dont' yet have specific constraints, because we're exploring an example (the private medical facts)
902- The work that needs to be done is to make clear where the exposure begins.
903- If the system requires many nuanced decisions, then it will be used by experts
904- If you need to access simple users, then they need apps that have few dials and levers
905
906@chris: tahoe doesn't have a security guarantee beyond the capability string, so sharing and recovery would need to be addressed by an external tool.
907
908@meejah: well, there is a `membrane` cap that provides a short lived string. Tahoe has been conservative about claims, which is why there is no delete key.
909
910*Questions*
911- if an app can add a layer of access control, *then* it can facilitate sharing, revocation and recovery?
912- should we add glossary entries for terms like `exposure` vs `trust`
913
914### Todos:
915- Explicit doc for the "security model" (inclusive of:
916    -  https://tahoe-lafs.readthedocs.io/en/latest/architecture.html#security
917    -  https://tahoe-lafs.readthedocs.io/en/latest/about-tahoe.html#what-is-provider-independent-security (ie.  The "provider-independent security" doc)
918- Expand glossary entries to include security concerns (eg. "treat capability strings as secrets", or the "secure domain is where the cap string is in the clear")
919- Add Glossary entries:
920    - exposure
921    - trust
922    - sharing
923    - revocation
924    - recovery
925    - membrane
926    - macaroon
927
928
929#### Broken CI
930
931@hacklschorsch : the tests seem to fail around HTTP. Foolscap seems to work but HTTP will pass and then fail.
932https://github.com/tahoe-lafs/tahoe-lafs/pull/1381#issuecomment-2444698978
933(maybe improve setup and teardown? see: allmydata.test.test_system.HTTPSystemTest )
934
935Ben noticed that there are less failures on the PAID circle CI account?!
936Ben will try to verify this using the LA fork:
937https://github.com/LeastAuthority/tahoe-lafs/tree/master, which now fails on CircleCI because of this ghost SSH key issue.
938
939### Beware logging
940There are several log sources and they are joined (manually) using timestamps :frowning:
941- Eliot  (`eliot tree`, `eliot prettyprint`)
942- Twisted
943- Python logger
944
945#### FOSDEM 25 in Bruxelles ?
946- Should we present a talk here?
947
948
949## Nov 12, 2024
950### Attendees
951
952- Ben
953- hacklschorsch
954- Jeff
955- Rodrigo
956- Shane
957- Blaise (late)
958
959### New Items:
960
961#### SupaWiki https://supawiki.com/
962Rodrigo joined and presented the idea to record personal data in a safe/private wiki.
963
964Update from blaise, limited availability during mourning:
965
966Public Repo for the integration app is: https://github.com/blaisep/private_facts
967@rodrigoplp is blasting ahead with integration into supawiki.com
968
969#### Mobile Tahoe-LFS mobile app in Haskell
970Good news, a few PRs have been merged: 11, 14, 15, 17, 19, 20 and 21:
971https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/merge_requests/?scope=all&state=merged
972
973#### User stories for Tahoe-LAFS end-users:
974Jeff and Blaise are working on describing how Tahoe-LAFS works.
975Leading to a sequence diagram (WiP):
976https://github.com/blaisep/private_facts/blob/main/docs/source/upload_content.puml
977
978#### MoveOffTrac
979- Pairing meeting on user stories postponed.
980- Possible licensing issue discussed with Codeberg. In short, if this is dual-licenced project, it should not be an issue.
981- The problem could come from [TGPPL](https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.TGPPL.rst) and CodeBerg [policy](https://docs.codeberg.org/getting-started/faq/#can-i-host-software-and-resources-without-a-free-and-open-source-software-license%3F)
982- Ben needs more info from Meejah and Pete to try to get a written approval from Codeberg.
983- As a reminder: this is not a blocker, until we decide to move the code from GH to CodeBerg (not in scope so far).
984
985#### CircleCI
986- Ben is working on the SSH ghost key issue
987- More info in [#4098](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4098#comment:17)
988- The problem may be fixed in 2 ways:
989  1. gaining admin access (using a temporary GH user) to add and remove an ssh key (hopefully cleaning the dirt in the pipes)
990  2. forcing https checkout using a custom step (PR in progress)
991- Rodrigo said it may be worthed to consider alternatives to CircleCI, like an independent version of GitHub Actions.
992- As a reminder: the CI is already half GH, half CircleCI. But if GH is doing better, both look vendor locking.
993- Some steps have been made in the MoveOffTrac to test Gitea act runner, which is a replacement for GitHub actions: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page/src/branch/main/.gitea/workflows/jekyll.yaml
994
995
996#### Other links:
997https://yopass.se/   (Maybe uses Tahoe?)
998https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.TGPPL.rst
999
1000
1001---
1002
1003## Nov 05, 2024
1004### Attendees
1005
1006- Ben
1007- Blaise
1008- Chris
1009- hacklschorsch
1010- Jeff
1011- Meejah
1012- Shane
1013
1014
1015### New Items:
1016
1017#### Project Adoption
1018The creator of [SupaWiki](https://supawiki.com) is interested in being able to create and read private objects using Tahoe.
1019
1020@blaisep :  created a fresh repo to hold code for the Tahoe-specific demo app, inspired by the meetup-health tracker: [private_facts](https://github.com/blaisep/private_facts). Happy to add collaborators.
1021
1022### Ongoing
1023
1024#### Trac migration with keywords
1025[PR](https://github.com/tahoe-lafs/trac2gitea/pull/31) in progress for trac2gitea to migrate keywords as labels (total = 912 w/ some dupplicates).
1026
1027Let's meet offline to review https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095 and memorialize a decision process.
1028- summarize the user scenarios ([stories](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md))
1029- clarify the constraints and requirements
1030- clarify the scope of each milestone (eg. describe structure of an issue, choose. a target pla)
1031
1032#### CircleCI
1033- Making progress in related repositories (e.g.: ZKAPAuthorizer) and learning for Tahoe-LAFS
1034- ssh key error seen in many projects, inluding Tahoe-LAFS: WiP to understand/avoid it
1035- Too much permissions by default
1036
1037#### RClone
1038- https://forum.rclone.org/t/tahoe-lafs-backend/6625
1039- Flo: Very interesting! The REST API looks perfect for rclone - there are many rclone backends which work in a very similar way so that would be easy for rclone to consume.
1040
1041#### Python packaging
1042- Is there a more "standard way" of packaging Python (Ben found it heterogeneous)?
1043- Blaise and Jeff are investigation [UV](https://github.com/astral-sh/uv): promessing, but?
1044- Tahoe-LAFS still uses [Makefile](https://github.com/tahoe-lafs/magic-folder/blob/main/Makefile)!
1045- Note: Tahoe-LAFS packages are not deployed to PyPi from CI
1046- BTW: PyPi is about to drop signature w/o alternative
1047- Meejah still publishes signatures for other projects
1048- See https://github.com/meejah/pypiratzzi/
1049
1050---
1051
1052## Oct 29, 2024
1053### Attendees
1054
1055- Ben
1056- Blaise
1057- Chris
1058- hacklschorsch
1059- Pete
1060- Jeff
1061- Meejah
1062- Shane
1063
1064
1065### New Items:
1066
1067#### CodeBerg has some retrictions about the license
1068- https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md#2-allowed-content-usage
1069- Re-licensing does not look like an option for Tahoe-LAFS (TGPPL)
1070- This is a cons, but there are other Forgejo providers
1071
1072#### Magic-grid installation is fixed (Meejah)
1073A simple typo in `pyproject.toml` resulted in ugly traceback. https://paste.ofcode.org/wapHcem8hXBVgigJ8LQUFg
1074
1075#### Explosion of interest in the Health app
1076Front end developers from the Nivenly community (folks behind https://hachyderm.io ) are excited about a health tracker with provider-independent privacy.
1077
1078#### Jeff working on 1101
1079Writing tests for a CLI improvement (handling the `--verbose` option for commands that don't explicitly support it). @meejah suggests starting with `tahoe ls` because it lacks `--verbose` and is very simple.
1080    - The Twisted CLI test infrastructure is weak.
1081    - The way the Twisted handles cmd args is somewhat magical.
1082    - Ideally, we re-write the CLI with `click` ... :santa:
1083
1084#### Learning to run individual tests:
1085
1086[tox.ini](https://github.com/tahoe-lafs/tahoe-lafs/blob/master/tox.ini#L76) has most of the details. In general, most of the tests use Twisted's trial module. Use `python -m twisted.trial --help`
1087
1088#### Help is on the way for CI.
1089
1090B3n reports that there is approval for applying some of his time to work on CI.
1091
1092#### something about SEEDS proposal
1093??
1094
1095#### Maybe release a new Magic-Folder
1096    - conflict-resolution branch may be messy.
1097    - Chris might benefit for grid-sync
1098    - The Tahoe client UI for Magic Folder is ... not smooth because it shows the various levels and metadata..
1099   
1100#### Case Study: Bootstrap WireGuard using magic wormhole
1101- One time use of magic wormhole to set up or add a wireGuard node. @meejah
1102
1103#### trac2gitea keywords
1104- https://github.com/tahoe-lafs/trac2gitea/issues/28
1105- ticket keywords would generate 1846 new labels
1106- Meejah suggested to look at https://github.com/twisted/twisted which had similar concern (e.g: #11563)
1107
1108### Related links:
1109
1110[STUN tunneling](https://github.com/magic-wormhole/magic-wormhole/issues/6#issuecomment-147854595)
1111
1112## Oct 22, 2024
1113### Attendees
1114
1115- Blaise
1116- Chris
1117- hacklschorsch
1118- Meejah
1119
1120
1121### New Items:
1122#### Debian build
1123Is there a set of tools we can use to validate our Debian builds?
1124#### Decision: let's avoid including Debian-specific dependencies in upstream.
1125
1126
1127#### Python 3.13
1128Jeff noticed a weird error with 3.13.rc2: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118#comment:4
1129Chris is checking compatiblity. 3.13 deprecated `cgi` module and there are dependencies on it.
1130#### Decision: We should move cgi classes to use the Twisted APIs
1131
1132#### Testing NAT with pytest and libvirt Virtual Networking
1133@meejah : testing NAT with pytest is a headache
1134@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/)
1135@chris : `headscale` is a open source tailscale/wireguard to VPN all-the-things (orthogonal, but interesting)
1136https://archive.fosdem.org/2023/schedule/event/goheadscale/
1137
1138---
1139
1140## Oct 15, 2024
1141### Attendees
1142
1143- Blaise
1144- B3n
1145- Meejah
1146- Jeff
1147- Chris
1148
1149
1150### random notes
1151
1152- some discussion of security etc around Terraform-managed Gandi DNS
1153- some meta-discussion of privacy of data for some use-cases
1154- distributed forgejo (etc) PRs mentioned, discussed a bit
1155- blocker: CI not working https://github.com/tahoe-lafs/tahoe-lafs/pull/1377
1156- Contributor/Developer [step-by-step guide](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118)
1157- 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)
1158- Twisted project used https://github.com/chevah/trac-to-github to migrate from trac to github
1159
1160#### Decisions:
1161- convert legacy keywords to static labels
1162- link to stored queries that contributors can reuse.
1163- Become independent of [CircleCI](https://sr.ht/~meejah/magic-grid/) is an aspiration. Some brave soul should do it.
1164- we'll need CircleCI until we can make CI run on the three platforms: Linux, Windows, Mac.
1165- Look at using [magic grid](https://sr.ht/~meejah/magic-grid/) to automate the tutorials
1166
1167### [Issue Tracking](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md)
1168@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.
1169We learned:
1170- There are additional, distinct,  roles with associated privileges and activities.
1171- Many issues are associated with each other using the free text `keywords` feature, which is not covered by the current migration.
1172- Ticket Discovery: The View Ticket page has many pre-defined queries which have no direct counterpart outside of trac.
1173
1174### Related links:
1175- [Git Federation](https://drewdevault.com/2018/07/23/Git-is-already-distributed.html)
1176- [Git over ActivityPub](https://forgefed.org/)
1177
1178
1179
1180### Gaps in the [Contributor guides](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118)
1181A new contributor has no clear path to a usable PR. The instructions assume familiarity with the project. For example:
1182- A contributor cannot find related tickets (WIP, previous solutions, dependencies, @meejah's tutorial automation ticket)
1183- How to collaborate on tickets that relate to each other?
1184- CI/CD: Which commands build the project?
1185- ...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)
1186- When to use the various Tox targets?
1187- 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)
1188
1189### QUESTIONS: current contributor user stories
1190- As a current contributor, when you want to find a ticket in Trac, do you:
1191    - Use a prepared query on the [View Ticket](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/ViewTickets) page?
1192    - Use the Custom query form?
1193    - Follow links inside an existing issue?
1194
1195
1196
1197---
1198
1199## Oct 8, 2024
1200### Attendees
1201
1202- Blaise
1203- B3n
1204- Chris
1205- hacklschorsch
1206- ccx
1207- Jeffhimself
1208
1209
1210### New Items
1211
1212
1213Include tests in the description of an issue.
1214- https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2050#comment:7
1215
1216Proposed Docs config changes
1217    - create
1218        - docs/test (to store the docs-specific tests)
1219        - docs/source (to restrict Sphinx to the the docs content, exclude tests, etc.)
1220    - add sys.path to docs/source/conf.py (to find the source directory)
1221    - Makefile (run Sphinx against the source directory)
1222    - Makefile doc-testing (add target for `make doc-testing`)
1223
1224
1225#### The step-by-step Developer Guide
1226A failing test(s) for being ready to
1227- build docs (`tox -e docs` ?)
1228- run the tests?
1229- submit a PR (nothing broken that the author couldnt' check themselves)
1230- build a release
1231
1232#### Trac migration Developer Experience
1233- @ccx Search? Associating trac issues to a feature is a PITA (labels, components are migrated)
1234- @chris: developers should be able to see CI results; what is the integration of issue/commit/PR
1235- @blaisep : reorder commits to match their tests.
1236- Codeberg CI https://codeberg.org/Codeberg-CI/woodpecker
1237
1238### Questions
1239- How does tox know about the fixtures?
1240- setup.py install returns:
1241`error: The 'zope-interface>=5' distribution was not found and is required by Twisted, twisted
1242` (and I'm not supposed to run setup.py)
1243
1244---
1245
1246## Oct 1, 2024
1247### Attendees
1248
1249- Blaise
1250- B3n
1251- Chris
1252- hacklschorsch
1253- Jeffhimself
1254- Meejah
1255- Pete
1256
1257### New Items:
1258
1259- Release Checklist, simple PR edition?
1260- Public Grid?
1261- Public mailbox server? (MagicFolder)
1262- Fowl and Dilation mentioned as unannounced apps related to file transfers
1263
1264
1265#### Trac Migration docs
1266- WIP https://github.com/tahoe-lafs/MoveOffTrac/tree/docs-update-24w40/docs
1267- Docs tickets will serve as the initial spike to test new user (Blaisep) creation.
1268- User Account management has some cases we want to excercise (forgot password, account confirmation, etc)
1269- Redirecting legacy URLs to the new issue tracker.
1270
1271### Prior Items:
1272
1273- 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)
1274- fixed cryptography library issue https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4100#no1
1275
1276#### Dependency management
1277
1278- "Tahoe is an app, so we shouldn't pin dependencies" @pete
1279
1280#### related projects
1281- "Git with you": Peer to Peer git colab (not via github) using pairon (?)
1282- [Dulwich](https://www.dulwich.io/docs/#getting-started) is a python implementation of git
1283- https://meejah.ca/blog/wizard-gardens-vision
1284- [Copybin](https://carml.readthedocs.io/en/latest/command-copybin.html), but private
1285- https://magic-folder.readthedocs.io/en/latest/invites.html#invites
1286- Brian's STUN server (?)
1287- @pete mentioned research on [OCAP](https://github.com/ocapn/ocapn)s over [CRDT](https://github.com/alangibson/awesome-crdt)s
1288- exposing ssh using [Inlets sshmux](https://inlets.dev/blog/2024/02/05/access-all-your-ssh-servers-with-sshmux.html)
1289- https://www.wireguard.com/
1290- [ZCAP](https://w3c-ccg.github.io/zcap-spec/) is separate from Tahoe. [Github]()
1291
1292
1293---
1294
1295
1296## Sep 24, 2024
1297### Attendees
1298
1299- Blaise
1300- B3n
1301- Chris
1302- hacklschorsch
1303- Jeffhimself
1304- Meejah
1305- Pete
1306
1307### New Items:
1308
1309- The new tutorials and docs will default to systemd in examples for running as a service.
1310- We'll start migrating issues. @b3n will provide a summarized plan next week. If necessary, we'll migrate to a self-hosted forgejo instanc.
1311
1312#### Migration: User Management topics
1313- Account creation flow
1314    - Auto-registration OFF,
1315    - User Creation
1316        - Auto create if Github auth'd
1317        - Manual
1318- Forgotten password flow (eg. Github IdP is down)
1319
1320#### Tahoe-S3
1321- A client which maps the finger tree into S3 numbers (and deal with S3 size limits)
1322- Finger tree used to handle failure scenarios
1323- Immutables only
1324- Doesn't create the shares
1325- Doesn't replace the native Tahoe storage server
1326- A challenge to implement in Haskell because it requires intimate knowledge of Tahoe internals, REST and Foolscap APIs
1327
1328#### ADR: Tech stack decisions
1329- Whither Haskell?
1330    - How much functionality is already implemented?
1331    - Haskell is a good high-level language.
1332- Whither Rust?
1333    - If we build *low-level* components in Rust, there's opportunity for re-use.
1334    - Rust has lots of tooling
1335
1336#### Improving Immutables
1337- Single block writers are the problem (@ccx)
1338- blockless multi-writer implementation is the answer
1339
1340Speaking 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.
1341
1342
1343## TILs
1344
1345- Duplicity has a backend option [`--tahoe`](https://fossies.org/linux/duplicity/duplicity/backends/tahoebackend.py)
1346- Python pre-compiled for [iOS](https://github.com/PyO3/maturin/issues/1742#issuecomment-1686219705), courtesy of [maturin](https://www.maturin.rs/tutorial)
1347- Room for improvement in describing our goals, roadmap milestones, features, etc. ("implement Tahoe-S3" vs "have a phone app")
1348
1349
1350---
1351
1352## Sep 17, 2024
1353### Attendees
1354
1355- Blaise
1356- B3n
1357- Pete
1358
1359### New Items:
1360
1361#### Trac migration
1362The 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).
1363
1364#### Provisioning and configuration management
1365On 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.
1366This is an area with too many choices.
1367
1368Some of the resources that came up in the discussion may be interesting to others:
1369- [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.
1370- [Packer](https://www.packer.io/) from HashiCorp, takes the "images as code" approach. Concerns about a terraform-style licensing issue came up.
1371- [Distrobox](https://distrobox.it/) to create containers with custom configurations.
1372- [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)
1373- 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).
1374- 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.
1375
1376---
1377
1378## Sep 10, 2024
1379### Attendees
1380
1381- Blaise
1382- hacklschorsch
1383- Chris
1384- Ccx
1385
1386### Step-by-step approach to getting started
1387Instead 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
1388
1389
1390### Express modularity using C4 notation for the diagrams
1391- layers of abstraction Context, Container, Component, Code
1392- [PlantUML includes](https://crashedmind.github.io/PlantUMLHitchhikersGuide/) C4 in the std lib
1393- https://crashedmind.github.io/PlantUMLHitchhikersGuide/C4/C4Stdlib.html
1394
1395### Describing Tahoe to local user groups
1396As prep for presenting to larger conferences
1397@blaisep offers to do user group talks (later: conference presentations)
1398- Historical context (eg. why did they create SDK first? Surveillance capitalism, enshitification, etc.)
1399- Use case examples (creating examples relevant to end users)
1400    - The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
1401    - Storage only is low value
1402
1403#### Challenges
1404Either gaps in functionality or gaps in understanding
1405- Describing the security boundaries (eg.vs corp walled gardens)
1406- Key management, rotattion, revocation
1407- The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
1408- No generic writer( @ccx ) can't write everything to/from everywhere.
1409
1410#### Comparisons
1411Describing Tahoe in terms of something they already know.
1412- 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.
1413Flo said NIP-104 will be a big improvement for private messaging
1414https://github.com/nostr-protocol/nips/pull/1427
1415 
1416- IPFS: similar layer of abstraction. More client implementations. Scales differently? https://news.ycombinator.com/item?id=37750529
1417- Signal: but for storage ( _can Signal self host?_ ) The reference implementation is a useful app, SDKs, Open protocol, ubiquitous.
1418- Syncthing: (peer-to-peer) but with decentralization and capabilities (@ccx)
1419
1420---
1421
1422## Sep 3, 2024
1423### Attendees
1424
1425- b3n
1426- Blaise
1427- hacklschorsch
1428- Meejah
1429- Ccx
1430
1431
1432## Prior Items
1433
1434- Glossary items
1435
1436- Debian packaging maybe delayed because `pycddl` has never been packaged for Debian. We might make it in by the end of the year. @hacklschorsch
1437    - (we should check if any of our other dependencies have never been packaged for Debian @meejah)
1438
1439- 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.
1440  - @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.
1441  - "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
1442
1443- @hacklschorsch: Can we lower the Tahoe-LAFS merge process turnaround time?
1444  - Optimistic Merging / other ideas for the Tahoe-LAFS GitHub repo? to make contributing leaner/more fun
1445  - meejah: A PR that is green and has approvals is already merged quickly now.  If not, write on IRC
1446  - 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.
1447
1448
1449## New items
1450
1451- Veilid: is it real, where are the intersections?
1452
1453@ccx : it's a library which bundles a number of p2p protocols. No existing app yet.
1454
1455@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.
1456
1457### Making it easier to develop on Tahoe
1458Separation of concerns, breaking tahoe into modules would be a good next move. @ccx (@blaise start a trac issue?)
1459
1460---
1461
1462## August 27, 2024
1463### Attendees
1464
1465- b3n
1466- Chris
1467- hacklschorsch
1468- Meejah
1469- Pete
1470
1471### Updates
1472
1473- Flo
1474  - LA wants to hire a senior Haskeller to work on LAFS
1475  - iOS: Obsidian is still investigating the "illegal instruction" compiler/linker issue
1476  - 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
1477  - Works with Blaise on Tahoe-LAFS docs
1478  - ... and would like to pair more in general
1479 
1480- Chris
1481  - published a Rust crate for LAFS: https://crates.io/crates/lafs 
1482 source repo: https://github.com/crwood/lafs
1483  -  Local and much faster than the Python equivalent (.25s instead of 24s on Chris' machine)
1484  -  It comes with Python bindings
1485
1486- b3n
1487  - Codeberg importing issue acknowledged by them
1488  - Would like to discuss self-host vs. SaaS for the upcoming GitTea with Meejah
1489
1490- Meejah
1491  - Magic Wormhole protocol work
1492  - FOWL Policy & Permissions API mostly done, soon to be merged & released.
1493  - [Pear-On](https://sr.ht/~meejah/pear-on/) should work ATM - testers welcome
1494
1495
1496## Previous items
1497
1498@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)
1499
1500
1501## New Items
1502
1503- 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.
1504- 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`).
1505- @blaisep has limited availability until Sep 30 2024
1506
1507
1508---
1509
1510## August 20, 2024
1511### Attendees
1512
1513Blaise
1514b3n
1515ccx
1516Chris
1517hacklschorsch
1518
1519## Previous items
1520
1521### WTF Circle CI?
1522* Is it broken? Maybe drop it?
1523* Do we have much logic in the Circle CI?
1524* It might be tests failing, rather than a systemic fail (credentials, dependencies, etc)
1525* "AMP server"? (twisted RPC framework) @ccx
1526* * https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4
1527* https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4/jobs/86344
1528
1529
1530### Towards a portable CI
1531* keep logic in the repo
1532* avoid huge Nix dependency (or maybe build a weekly Nix image)
1533* https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html
1534
1535
1536
1537### Describe the build process
1538* add prose in the dev guide to the files in the repo describing the build (@blaise)
1539* update the release checklist: https://tahoe-lafs.readthedocs.io/en/latest/release-checklist.html
1540
1541### Mutables, Service of Happiness
1542* @blaise asked where we were at with mutables...
1543* using mutables as single writers (eg. Tahoe backup)
1544* It's a big thing, eventually replace with a proper design for a multi-writer primitive
1545* For now, stick with readonly or Magic Folder for examples and getting started guide.
1546* > 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
1547
1548### [MoveOffTrac](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac) - [#4095](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095)
1549* 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).
1550* 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!
1551* New Forgejo instance (copy/paste from Gitea) to be closer to Codeberg: https://forge.lafs.eval.latfa.net/tahoe-lafs/
1552* Testing migration to Codeberg with pagination bug (workaround), performance issue (deadlock error) and user mapping (unlikely possible)
1553* Keyoxide.org may help us to link all those account!?
1554
1555## New Items
1556
1557* Blaisep has trac !!!
1558* TIL: Trac use "htdigest" (@meejah "i'll put a note in ~trac")
1559
1560---
1561
1562## August 13, 2024
1563### Attendees
1564
1565Blaise
1566b3n
1567ccx
1568Chris
1569hacklschorsch
1570Pete
1571
1572## Previous items
1573
1574- Blaise needs a trac account to CRUD issues, for docs, etc.
1575- GitTea self register results in many spam accounts @b3n
1576- We have users on Trac and users on GitHub, sometimes the names are different. @b3n
1577- Trac Migration Plan [WIP](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac)
1578- migrated Trac eval instance (https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-05-23/issues)
1579
1580## New
1581- 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
1582- Consider using Google, GitHub auth for auto register CodeBerg accounts
1583- Consider upgrading/self hosting Trac instance (maybe it's not so bad after all)
1584- Could we make trac readonly and do new work on the ["demo" instance](https://www.lafs.eval.latfa.net/) instance?
1585
1586
1587### Migrating Issues: Goals and Constraints
1588- Anything off of track is better
1589- Github Issues are accessible, but there is risk of lock-in, enshitification
1590- Gitea/Forgejo/CodeBerg is future-proof (no lock-in)
1591- Inconsistent tribal knowledge about decisions made last year @blaisep et al.
1592
1593---
1594
1595
1596## August 6, 2024
1597### Attendees
1598
1599Blaise
1600b3n
1601Chris
1602ccx
1603hacklschorsch
1604meejah
1605Pete
1606
1607
1608Thought leaders:
1609Amber O'Hearn (not so much)
1610Larry Lessig
1611Brewster Kahle
1612Christine_Lemmer-Webber (spritely)
1613
1614
1615New Items:
1616
1617Pete's foundation doc: https://docs.google.com/document/d/1MpFUUB9sX-SA6rsHpq9ZkIhrnZaG3zwzI6KJ9I0VAgE/edit
1618
1619## Comparables
1620
1621* https://spritely.institute/about/
1622* https://ocapn.org/
1623* https://darkcrystal.pw/ (meejah)
1624* ISRG https://www.abetterinternet.org/
1625* https://divviup.org/
1626* https://sans-io.readthedocs.io/
1627
1628
1629### Mission statements
1630
1631"Infrastructure for Libre, gratis, private, intentional composability and sharing " @Blaise , @meejah
1632
1633Device introduction @meejah
1634
1635"social infrastructure tools (sharing and composability to support differrent social structures and relationships)"
1636Bootstrap social relations, dependency maps.
1637@Chris
1638
1639secure sharing with least privilege (zero trust?) @ccx
1640(Higher resolution, more ephemeral than app-level privs)
1641https://roy.marples.name/blog/posts/capsicum_vs_pledge_final_thoughts
1642
1643Discoverable, "~~decentralized~~" (Autonomous?) / disconnected in nature (eg. TLS without the PKI) @Pete
1644Provider independent
1645
1646
1647### Community Survey
1648
1649@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.
1650eg, decouple wire protocol from the U I.
1651https://sans-io.readthedocs.io/ @Pete
1652
1653Who is the audience? grandmas with photosharing? Political activists? crypto bros?
1654
1655---
1656
1657## July 30, 2024
1658### Attendees
1659
1660Blaise
1661hacklschorsch
1662b3n
1663Chris
1664Pete
1665ccx
1666
1667## Highlights:
1668* Project governance structure
1669
1670## Agenda
1671
1672### Previous topics:
1673
1674* Docs PR in progress
1675
1676## New Topics:
1677* A proposal for a governance structure (Pete)
1678
1679### An endowment and governance structure
1680
1681* Align the Tahoe mission with the right institutional structure.
1682* Similar cases:
1683    * The [Veillid Foundation](https://veilid.org/about-us/) is a very close analog.
1684    * https://www.djangoproject.com/foundation/
1685    * https://foundation.mozilla.org/en/who-we-are/
1686    * https://www.abetterinternet.org/documents/2023-ISRG-Annual-Report.pdf
1687    * https://www.abetterinternet.org/about/
1688    * https://matrix.org/foundation/about/
1689* Fund some dedicated project support
1690
1691### Who is the community?
1692* Board members
1693* What are the activities?
1694* Intellectual property portfolio (trademarks, copyrights, patents)?
1695
1696### Who is NOT the community?
1697Where has the project stalled and why?
1698Why do people drop in, get frustrated, and leave?
1699What are the blockers for adoption and how can we overcome them.
1700
1701### Tahoe public resources; what could we build next?
1702* Public test grid ?
1703* ZCap servers ?
1704
1705#### Other options for funding services
1706
1707* https://docs.opencollective.foundation/how-it-works/fees
1708
1709#### Dependent projects
1710GridSync (golang) ?
1711Magic Wormhole ?
1712
1713#### Dependencies
1714* Twisted
1715* Mutables
1716* Python https://meta.pycqa.org/introduction.html
1717
1718---
1719
1720## July 23, 2024
1721
1722### Attendees
1723
1724Blaise
1725hacklschorsch
1726Meejah
1727b3n
1728Chris
1729ccx
1730
1731
1732## Highlights:
1733* Mutables would be a good thing for the Foundation to fund.
1734* The goal of [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) is to replace foolscap. Not there yet. (sucks to require a node online)
1735* Create project for client filesystem
1736
1737## Agenda
1738
1739### Previous topics:
1740
1741Meejah:
1742* Trac disk space restored
1743* Granted admin privs
1744
1745hacklschorsch:
1746Mobile LAFS [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile) with draft description of Features and Scope.
1747
1748B3n:
1749Next, Trac migration path (DNS, )
1750Codeberg bug
1751
1752
1753### New topics:
1754* B3n: Prepare Trac migration operating instructions (DNS settings, etc)
1755* B3n: Help Meejah create Trac account (for Blaise).
1756* Decision: Let's try to make the single mobile code base work (hacklschorsch)
1757* Deep integration with the OS is not MVP  (hacklschorsch)
1758* [Gitlab milestones](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/milestones/7#tab-issues) don't have the OS integration yet.(ccx)
1759* Create FUSE module for the dev environment (ccx)
1760
1761## Notes:
1762
1763Chris:
1764* [Porting Tahoe hashlib](https://github.com/crwood/deterministic-keygen/issues/5) to Rust and found an issue:
1765* 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.
1766* Curating a common set of test vectors
1767
1768#### Restore scenarios
1769Todo: write up a description, describing permuted scenarios (Meejah, Chris)
1770(We need better words to describe the operations and events)
1771
1772Four scenarios:
1773* Client failed, grid is fine
1774* Grid loses nodes
1775* Grid loses partial data
1776* Grid loses all data
1777
1778
1779#### Mutables
1780* Don't do service happiness (ccx's complaint)
1781
1782Can't detect all the restore scenarios. Sometimes all the shares end up on one server :frowning:
1783What is the meaning of Happiness? Happiness is just a number (Meejah)
1784
1785#### Mobile
1786* Need to write up the description in  [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile)
1787* We need to describe how much of the functionality
1788* Foolscap requires a node online, [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) does not
1789* "User defined grid" ? (ccx)
1790* What if we had a gridsync client (b3n)
1791* Deep integration with the OS is not MVP  (hacklschorsch)
1792* Obsidian has something called `backend` which is different.
1793* [Obelisk overrides](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
1794* Let's have good interface definitions (ccx)
1795* [Gitlab repo](https://gitlab.com/tahoe-lafs/tahoe-great-black-swamp) Code
1796
1797
1798#### File system browser? (ccx)
1799* Can we use the native [mobile libraries](https://emanual.github.io/Android-docs/guide/topics/providers/document-provider.html)?
1800* How much do we need in the GUI?
1801* (https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
1802
1803#### Create project: Investigate FUSE File System Support (ccx)
1804* Read/Only native client
1805* Read/Only magic folder
1806* Read/Write Magic Folder
1807* Built on top of GBS downloader
1808
1809---
1810
1811
1812