Ticket #4104: Meetings2024-09-17.md

File Meetings2024-09-17.md, 18.0 KB (added by blaisep, at 2024-09-17T23:24:56Z)

MeetingNotes?-2024-09-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[Consolidation of notes](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4104)
10
11
12## Sep 17, 2024
13### Attendees
14
15- Blaise
16- B3n
17- Pete
18
19### New Items:
20
21#### Trac migration
22The 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).
23
24#### Provisioning and configuration management
25Most 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.
26This is an area with too many choices.
27
28Some of the resources that came up in the discussion may be interesting to others:
29- [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.
30- [Packer](https://www.packer.io/) from HashiCorp, takes the "images as code" approach. Concerns about a terraform-style licensing issue came up.
31- [Distrobox](https://distrobox.it/) to create containers with custom configurations.
32- [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)
33- 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).
34- 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.
35
36---
37
38## Sep 10, 2024
39### Attendees
40
41- Blaise
42- hacklschorsch
43- Chris
44- Ccx
45
46### Step-by-step approach to getting started
47Instead 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
48
49
50### Express modularity using C4 notation for the diagrams
51- layers of abstraction Context, Container, Component, Code
52- [PlantUML includes](https://crashedmind.github.io/PlantUMLHitchhikersGuide/) C4 in the std lib
53- https://crashedmind.github.io/PlantUMLHitchhikersGuide/C4/C4Stdlib.html
54
55### Describing Tahoe to local user groups
56As prep for presenting to larger conferences
57@blaisep offers to do user group talks (later: conference presentations)
58- Historical context (eg. why did they create SDK first? Surveillance capitalism, enshitification, etc.)
59- Use case examples (creating examples relevant to end users)
60    - The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
61    - Storage only is low value
62
63#### Challenges
64Either gaps in functionality or gaps in understanding
65- Describing the security boundaries (eg.vs corp walled gardens)
66- Key management, rotattion, revocation
67- The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
68- No generic writer( @ccx ) can't write everything to/from everywhere.
69
70#### Comparisons
71Describing Tahoe in terms of something they already know.
72- 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.
73Flo said NIP-104 will be a big improvement for private messaging
74https://github.com/nostr-protocol/nips/pull/1427
75 
76- IPFS: similar layer of abstraction. More client implementations. Scales differently? https://news.ycombinator.com/item?id=37750529
77- Signal: but for storage ( _can Signal self host?_ ) The reference implementation is a useful app, SDKs, Open protocol, ubiquitous.
78- Syncthing: (peer-to-peer) but with decentralization and capabilities (@ccx)
79
80---
81
82## Sep 3, 2024
83### Attendees
84
85- b3n
86- Blaise
87- hacklschorsch
88- Meejah
89- Ccx
90
91
92## Prior Items
93
94- Glossary items
95
96- Debian packaging maybe delayed because `pycddl` has never been packaged for Debian. We might make it in by the end of the year. @hacklschorsch
97    - (we should check if any of our other dependencies have never been packaged for Debian @meejah)
98
99- 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.
100  - @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.
101  - "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
102
103- @hacklschorsch: Can we lower the Tahoe-LAFS merge process turnaround time?
104  - Optimistic Merging / other ideas for the Tahoe-LAFS GitHub repo? to make contributing leaner/more fun
105  - meejah: A PR that is green and has approvals is already merged quickly now.  If not, write on IRC
106  - 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.
107
108
109## New items
110
111- Veilid: is it real, where are the intersections?
112
113@ccx : it's a library which bundles a number of p2p protocols. No existing app yet.
114
115@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.
116
117### Making it easier to develop on Tahoe
118Separation of concerns, breaking tahoe into modules would be a good next move. @ccx (@blaise start a trac issue?)
119
120---
121
122## August 27, 2024
123### Attendees
124
125- b3n
126- Chris
127- hacklschorsch
128- Meejah
129- Pete
130
131### Updates
132
133- Flo
134  - LA wants to hire a senior Haskeller to work on LAFS
135  - iOS: Obsidian is still investigating the "illegal instruction" compiler/linker issue
136  - 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
137  - Works with Blaise on Tahoe-LAFS docs
138  - ... and would like to pair more in general
139 
140- Chris
141  - published a Rust crate for LAFS: https://crates.io/crates/lafs 
142 source repo: https://github.com/crwood/lafs
143  -  Local and much faster than the Python equivalent (.25s instead of 24s on Chris' machine)
144  -  It comes with Python bindings
145
146- b3n
147  - Codeberg importing issue acknowledged by them
148  - Would like to discuss self-host vs. SaaS for the upcoming GitTea with Meejah
149
150- Meejah
151  - Magic Wormhole protocol work
152  - FOWL Policy & Permissions API mostly done, soon to be merged & released.
153  - [Pear-On](https://sr.ht/~meejah/pear-on/) should work ATM - testers welcome
154
155
156## Previous items
157
158@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)
159
160
161## New Items
162
163- 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.
164- 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`).
165- @blaisep has limited availability until Sep 30 2024
166
167
168---
169
170## August 20, 2024
171### Attendees
172
173Blaise
174b3n
175ccx
176Chris
177hacklschorsch
178
179## Previous items
180
181### WTF Circle CI?
182* Is it broken? Maybe drop it?
183* Do we have much logic in the Circle CI?
184* It might be tests failing, rather than a systemic fail (credentials, dependencies, etc)
185* "AMP server"? (twisted RPC framework) @ccx
186* * https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4
187* https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4/jobs/86344
188
189
190### Towards a portable CI
191* keep logic in the repo
192* avoid huge Nix dependency (or maybe build a weekly Nix image)
193* https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html
194
195
196
197### Describe the build process
198* add prose in the dev guide to the files in the repo describing the build (@blaise)
199* update the release checklist: https://tahoe-lafs.readthedocs.io/en/latest/release-checklist.html
200
201### Mutables, Service of Happiness
202* @blaise asked where we were at with mutables...
203* using mutables as single writers (eg. Tahoe backup)
204* It's a big thing, eventually replace with a proper design for a multi-writer primitive
205* For now, stick with readonly or Magic Folder for examples and getting started guide.
206* > 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
207
208### [MoveOffTrac](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac) - [#4095](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095)
209* 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).
210* 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!
211* New Forgejo instance (copy/paste from Gitea) to be closer to Codeberg: https://forge.lafs.eval.latfa.net/tahoe-lafs/
212* Testing migration to Codeberg with pagination bug (workaround), performance issue (deadlock error) and user mapping (unlikely possible)
213* Keyoxide.org may help us to link all those account!?
214
215## New Items
216
217* Blaisep has trac !!!
218* TIL: Trac use "htdigest" (@meejah "i'll put a note in ~trac")
219
220---
221
222## August 13, 2024
223### Attendees
224
225Blaise
226b3n
227ccx
228Chris
229hacklschorsch
230Pete
231
232## Previous items
233
234- Blaise needs a trac account to CRUD issues, for docs, etc.
235- GitTea self register results in many spam accounts @b3n
236- We have users on Trac and users on GitHub, sometimes the names are different. @b3n
237- Trac Migration Plan [WIP](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac)
238- migrated Trac eval instance (https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-05-23/issues)
239
240## New
241- 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
242- Consider using Google, GitHub auth for auto register CodeBerg accounts
243- Consider upgrading/self hosting Trac instance (maybe it's not so bad after all)
244- Could we make trac readonly and do new work on the ["demo" instance](https://www.lafs.eval.latfa.net/) instance?
245
246
247### Migrating Issues: Goals and Constraints
248- Anything off of track is better
249- Github Issues are accessible, but there is risk of lock-in, enshitification
250- Gitea/Forgejo/CodeBerg is future-proof (no lock-in)
251- Inconsistent tribal knowledge about decisions made last year @blaisep et al.
252
253---
254
255
256## August 6, 2024
257### Attendees
258
259Blaise
260b3n
261Chris
262ccx
263hacklschorsch
264meejah
265Pete
266
267
268Thought leaders:
269Amber O'Hearn (not so much)
270Larry Lessig
271Brewster Kahle
272Christine_Lemmer-Webber (spritely)
273
274
275New Items:
276
277Pete's foundation doc: https://docs.google.com/document/d/1MpFUUB9sX-SA6rsHpq9ZkIhrnZaG3zwzI6KJ9I0VAgE/edit
278
279## Comparables
280
281* https://spritely.institute/about/
282* https://ocapn.org/
283* https://darkcrystal.pw/ (meejah)
284* ISRG https://www.abetterinternet.org/
285* https://divviup.org/
286* https://sans-io.readthedocs.io/
287
288
289### Mission statements
290
291"Infrastructure for Libre, gratis, private, intentional composability and sharing " @Blaise , @meejah
292
293Device introduction @meejah
294
295"social infrastructure tools (sharing and composability to support differrent social structures and relationships)"
296Bootstrap social relations, dependency maps.
297@Chris
298
299secure sharing with least privilege (zero trust?) @ccx
300(Higher resolution, more ephemeral than app-level privs)
301https://roy.marples.name/blog/posts/capsicum_vs_pledge_final_thoughts
302
303Discoverable, "~~decentralized~~" (Autonomous?) / disconnected in nature (eg. TLS without the PKI) @Pete
304Provider independent
305
306
307### Community Survey
308
309@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.
310eg, decouple wire protocol from the U I.
311https://sans-io.readthedocs.io/ @Pete
312
313Who is the audience? grandmas with photosharing? Political activists? crypto bros?
314
315---
316
317## July 30, 2024
318### Attendees
319
320Blaise
321hacklschorsch
322b3n
323Chris
324Pete
325ccx
326
327## Highlights:
328* Project governance structure
329
330## Agenda
331
332### Previous topics:
333
334* Docs PR in progress
335
336## New Topics:
337* A proposal for a governance structure (Pete)
338
339### An endowment and governance structure
340
341* Align the Tahoe mission with the right institutional structure.
342* Similar cases:
343    * The [Veillid Foundation](https://veilid.org/about-us/) is a very close analog.
344    * https://www.djangoproject.com/foundation/
345    * https://foundation.mozilla.org/en/who-we-are/
346    * https://www.abetterinternet.org/documents/2023-ISRG-Annual-Report.pdf
347    * https://www.abetterinternet.org/about/
348    * https://matrix.org/foundation/about/
349* Fund some dedicated project support
350
351### Who is the community?
352* Board members
353* What are the activities?
354* Intellectual property portfolio (trademarks, copyrights, patents)?
355
356### Who is NOT the community?
357Where has the project stalled and why?
358Why do people drop in, get frustrated, and leave?
359What are the blockers for adoption and how can we overcome them.
360
361### Tahoe public resources; what could we build next?
362* Public test grid ?
363* ZCap servers ?
364
365#### Other options for funding services
366
367* https://docs.opencollective.foundation/how-it-works/fees
368
369#### Dependent projects
370GridSync (golang) ?
371Magic Wormhole ?
372
373#### Dependencies
374* Twisted
375* Mutables
376* Python https://meta.pycqa.org/introduction.html
377
378---
379
380## July 23, 2024
381
382### Attendees
383
384Blaise
385hacklschorsch
386Meejah
387b3n
388Chris
389ccx
390
391
392## Highlights:
393* Mutables would be a good thing for the Foundation to fund.
394* The goal of [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) is to replace foolscap. Not there yet. (sucks to require a node online)
395* Create project for client filesystem
396
397## Agenda
398
399### Previous topics:
400
401Meejah:
402* Trac disk space restored
403* Granted admin privs
404
405hacklschorsch:
406Mobile LAFS [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile) with draft description of Features and Scope.
407
408B3n:
409Next, Trac migration path (DNS, )
410Codeberg bug
411
412
413### New topics:
414* B3n: Prepare Trac migration operating instructions (DNS settings, etc)
415* B3n: Help Meejah create Trac account (for Blaise).
416* Decision: Let's try to make the single mobile code base work (hacklschorsch)
417* Deep integration with the OS is not MVP  (hacklschorsch)
418* [Gitlab milestones](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/milestones/7#tab-issues) don't have the OS integration yet.(ccx)
419* Create FUSE module for the dev environment (ccx)
420
421## Notes:
422
423Chris:
424* [Porting Tahoe hashlib](https://github.com/crwood/deterministic-keygen/issues/5) to Rust and found an issue:
425* 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.
426* Curating a common set of test vectors
427
428#### Restore scenarios
429Todo: write up a description, describing permuted scenarios (Meejah, Chris)
430(We need better words to describe the operations and events)
431
432Four scenarios:
433* Client failed, grid is fine
434* Grid loses nodes
435* Grid loses partial data
436* Grid loses all data
437
438
439#### Mutables
440* Don't do service happiness (ccx's complaint)
441
442Can't detect all the restore scenarios. Sometimes all the shares end up on one server :frowning:
443What is the meaning of Happiness? Happiness is just a number (Meejah)
444
445#### Mobile
446* Need to write up the description in  [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile)
447* We need to describe how much of the functionality
448* Foolscap requires a node online, [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) does not
449* "User defined grid" ? (ccx)
450* What if we had a gridsync client (b3n)
451* Deep integration with the OS is not MVP  (hacklschorsch)
452* Obsidian has something called `backend` which is different.
453* [Obelisk overrides](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
454* Let's have good interface definitions (ccx)
455* [Gitlab repo](https://gitlab.com/tahoe-lafs/tahoe-great-black-swamp) Code
456
457
458#### File system browser? (ccx)
459* Can we use the native [mobile libraries](https://emanual.github.io/Android-docs/guide/topics/providers/document-provider.html)?
460* How much do we need in the GUI?
461* (https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
462
463#### Create project: Investigate FUSE File System Support (ccx)
464* Read/Only native client
465* Read/Only magic folder
466* Read/Write Magic Folder
467* Built on top of GBS downloader
468
469---
470
471
472