Ticket #4104: 20250218-Nuts & Bolts Meetings.md

File 20250218-Nuts & Bolts Meetings.md, 52.7 KB (added by blaisep, at 2025-02-18T18:51:03Z)

MeetingNotes?-2025-02-18

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
14# Feb 18, 2025
15
16### Attendees
17- Blaise
18- Chris
19- Jeff
20- @hacklschorsch
21- Meejah
22
23#### Hosting multipoint video conferences.
24
25[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?
26https://askubuntu.com/questions/56356/how-to-host-a-video-conference-with-vlvc
27> 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.
28https://www.videolan.org/vlc/libvlc.html
29http://breakthrusoftware.com/html/onlinedocs/kb/videomill/vlc.html
30Python bindings https://github.com/oaubert/python-vlc
31
32https://wiki.videolan.org/VideoLan_VideoConference/
33
34Jitsi: uses webRTC and that is hard to punch through wormholes.
35
36
37#### web sockets in Tahoe-lafs
38
39https://github.com/tahoe-lafs/tahoe-lafs/blob/master/ws_client.py
40
41#### Safer Serving Eliot logs: don't write to disk
42Write logs to in memory files to reduce exposure of sensitive data
43https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3006
44fixed https://github.com/tahoe-lafs/tahoe-lafs/pull/584
45
46#### Upload Helper
47- does the upload helper work?
48- is it still useful? are uploads an issue in 2025?
49
50#### Upload: Strategy of happiness
51
52https://tahoe-lafs.readthedocs.io/en/latest/specifications/servers-of-happiness.html#upload-strategy-of-happiness
53
54#### Deploying grid manager
55a solution for private storage
56Maybe use the test grid?
57
58#### No new capability types
59because we don't have cryptographers for cryptographic review.
60
61## Feb 11, 2025
62
63### Attendees
64- Blaise
65- Chris
66- Jeff
67
68#### Private Facts API discussion, Chris' suggestions
69- Consider using the CLI `alias` function for human readable references to capabilities.
70- Consider saving capabilities in a local secrets manager.
71
72## Feb 4, 2025
73
74### Attendees
75- Blaise
76- Chris
77- Jeff
78- Ben
79- Meejah
80
81#### FosDem Lightning talk
82- Flo presented
83- Link TBD
84- No analytics because we don't control the DNS name.
85
86#### Trac Migration
87- Brian on board with DNS redirection, etc
88
89#### Other items in progress, pending grant renewal
90- LAFS rust crate
91- Recovery workflow
92
93#### What sequence diagramming tools work well?
94- PlantUML is the most portable and future proof https://crashedmind.github.io/plantuml.github.io/
95- Mermaid is the most beautiful, but very JavaScripty https://mermaid.js.org/intro/
96- kroki.io is the umbrella project that runs everything https://kroki.io/
97- excalidraw is good for drag&drop with a bit of import/export https://excalidraw.com/
98
99## Jan 28, 2025
100
101### Attendees
102- Blaise
103- Chris
104- Flo (@hacklschorsch)
105- Jeff
106- Meejah
107- Pete
108
109
110#### Pete has news from "Magic Internet" !
111
112- Opportunity for differentiating the guiding principals from the legacy tech debt!
113- Python Tahoe is moving to Open Collective for managing grants
114- Itamar working on some outstanding 3.13 compatibility requirements
115- Magic Internet is focused on Magic Wormhole, Magic Cap
116- Building basic tools the internet needs but no one will fund
117    - eg. [libsodium](https://doc.libsodium.org/) is an implementation of the [NaCL](https://nacl.cr.yp.to/) protocols.
118    - Another comparable: [libssl](https://github.com/openbsd/src/blob/master/lib/libssl/ssl_lib.c).
119        - but easier to use, like https://github.com/mendsley/libssl
120
121- Magic Cap is "data capabilities" (inspired by OCap) - library for decentralized capabilities. (Networking, Permissions, Persistence)
122    - Rust for interop
123    - Python bindings (because we love python)
124    - Wasm for browsers (eg JavaScript, NodeJS)
125- Client-first
126- eg. "am I allowed to change these bytes?"
127    - Today: enforced by Linux
128    - Next: enforced by linux, determined by MagicCap
129- Independent of a server or provider.
130- Budgeting and roles, TBA
131- Public infrastructure and assets, Real Soon Now.
132
133#### FAQs
134- Is there a community meeting or some other way to follow Magic Cap?
135    - Not Yet. TBD.
136- Is Magic Cap a re-write of Tahoe-LAFS?
137    - No. Think of it as smalltalk on crack.
138- Are we making an oCap system?
139    - No. The libraries should include
140- What if I want to use Spritely goblins?
141    - Magic Cap could work with Spritely.
142- Do we know what the boundary of the API looks like (Files? AuthZ Permissions? Directories?). What level of abstraction would the libraries operate?
143    - TBD, but we'll avoid leaking some of the abstractions we have leaked in the past.
144
145
146#### Getting steeped in Rust
147- Chris wants to align his work on the Rust LAFS crate.
148- Wormhole Rust implementation has fallen behind.
149
150### Other links:
151Brian on Magic Wormhole:  https://www.youtube.com/watch?v=sulJG196BMw
152    -  Longer talk: https://www.youtube.com/watch?v=oFrTqQw0_3c
153-  Learn Rust with practical excercises: https://rustplatform.com/
154-  https://gitlab.redox-os.org/redox-os/cookbook
155-  https://blog.bovid.space/conceptual-intro-to-spritely-goblins.html
156-  https://en.wikipedia.org/wiki/Object-capability_model
157-  The [Cosmos SDK](https://docs.cosmos.network/main/learn/advanced/ocap)
158-  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
159
160
161## Jan 21, 2025
162
163### Attendees
164- Blaise
165- Chris
166- Flo (@hacklschorsch)
167- Jeff
168- Meejah
169
170#### Chris: Rust implementation
171- Erasure, mutables...
172- Meejah asked about the fec crate
173
174#### Flo: New PubGrid online
175- New PubGrid online
176  - Couldn't keep old introducer fURL because of lost key, new fURL is in https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TestGrid
177- [Updates](https://github.com/tahoe-lafs/infrastructure/pull/6) merged into `main` branch of [IaaC repository](https://github.com/tahoe-lafs/infrastructure/)
178- Many improvement ideas already in https://github.com/tahoe-lafs/infrastructure/issues
179  - These tickets should be in Trac instead
180 
181#### Flo: Debian packages accepted
182- Great work from Andrius (maintainer for Debian packages)
183- 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)
184- All tests pass with Python 3.12 and 3.13
185- 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
186- Cosmetic fixes ongoing regarding SyntaxWarnings of Python 3.12/3.13
187
188#### Flo: Tahoe-LAFS mobile app
189* Own grid functionality completed
190* Working on parsing plain Tahoe-LAFS Dircaps
191* Have [improved architecture of application](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/merge_requests/29)
192* Test version going Play store
193
194#### Private Facts sample app
195
196Decisions
197* example with key:values (write direct to Tahoe?)
198* example with sqlite (cache locally, save to Tahoe on exit)
199
200For simple pure tahoe, do the key:value
201
202Error Handling
203* examples at https://github.com/tahoe-lafs/magic-folder/blob/main/src/magic_folder/tahoe_client.py
204* 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)
205* [`get_welcome`](https://github.com/tahoe-lafs/magic-folder/blob/993f1ab478ca073c594b16973984ba485d9575d5/src/magic_folder/tahoe_client.py#L186) is the key to happiness
206
207
208#### Fedora packaging
209
210* they are having trouble with the python package: https://copr.fedorainfracloud.org/coprs/g/fedora-review/fedora-review-2327756-python-magic-wormhole/build/8295435/
211* Some consider the Rust implementation to be more current
212*
213---
214
215## Jan 14, 2025
216
217### Attendees
218- Blaise
219- Chris
220- Flo (@hacklschorsch)
221- Jeff
222- Meejah
223- Pete
224
225### Test Grid in progress!!
226
227- Change the dnd records
228- Decide the lifecycle of files,
229- expiration
230- governance (manage the introducers?)
231
232### Private Facts
233Blaise gave a tour of the latest description of the sample application:
234- using the Sphinx theme: https://github.com/pradyunsg/furo
235- ADR: use the `requests` library for the python examples
236- ADR: use sqlite for the "database"
237- ADR: use fastAPI for the app server
238- ADR: handle the "directory/filepath" metaphor later
239
240#### Decisions
241
242- Impose the file system metaphor later?
243- Use the test grid?
244
245### Roadmap: Tahoe Enhancement Proposal process. What work is the project likely to prioritize?
246As funding for the current work comes to an end, what are we working on and what are the Project priorities?
247What would most benefit the project?
248- Chris working on Rust implementation (does it have a future?)
249- Blaise working on project adoption (use cases, office hours, conferences, example apps)
250- Interoperability with other technologies
251
252
253## Jan 7, 2025
254### Attendees
255- Blaise
256- Ben
257- Chris
258- Flo
259- Jeff
260- Meejah
261- Shane
262- Sherry
263
264We exceeded the jitsi capacity. It struggled to handle the size of the meeting!
265
266#### Welcome Sherry
267
268
269## Dec 17, 2024
270### Attendees
271- Blaise
272- Flo
273- Jeff
274- Meejah
275
276
277
278### Previous Items
279
280#### CI is mostly green:
281- https://github.com/LeastAuthority/tahoe-lafs/tree/3484.test-build-images
282- https://github.com/LeastAuthority/tahoe-lafs/tree/4143.refresh-images-part2
283-
284
285### New Items
286
287#### 3rd party Integrations
288- 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
289
290#### Writing design docs
291@meejah:
292- Describe the characteristics of:
293    - Grid
294        - Protocols (GBS, foolscap, both)
295        - storage criteria
296    - Introducer
297        - member criteria
298        - service discovery
299        - announcements
300    - Membrane
301- Examples:
302    - https://github.com/tahoe-lafs/tahoe-lafs/blob/master/docs/managed-grid.rst
303    - https://github.com/tahoe-lafs/tahoe-lafs/blob/master/docs/specifications/http-storage-node-protocol.rst
304
305Need not be an implementation guide. It could be prose or something more structured, such as:
306- https://github.com/balanced/balanced-api/blob/master/features/callbacks.feature
307- https://github.com/behave/behave/blob/main/features/fixture.feature
308- https://github.com/balanced/balanced-api/blob/master/features/settlements.feature
309
310## Dec 10, 2024
311### Attendees
312- Ben
313- Blaise
314- Chris
315- Jeff
316- Meejah
317- Shane
318
319### New Items
320
321#### CI
322- Ben has CI working everywhere
323    - Github
324    - Local
325    - Backport changes to CircleCI
326    - **Except**: Inconsistency specific to Circle CI (even in Least Authority Org), possibly resource related on circle CI's k8s config
327- Trac issues
328    - 3484
329    - 4131
330    - 4135
331    - 4142
332    - 4143 (Updating the CI images)
333    - xxxx (Using the new images)
334    - xxxx (_Plan B_ bypassing the intermediate image build)
335
336Note: Tahoe-lafs github admin group has 6 members.
337
338#### Is building CI images in advance a premature optimization?
339- Circle CI creates "tahoelafsci/debian:11-py3.9" and uses that image to create the build.
340- It requires a periodical "click of the button" for the occasional rebuild of the CI images.
341- It does not actually provide reproducible builds.
342- We are not pinning images nor are we pinning wheels.
343- It *may* provide some faster builds (we have not quantified)
344- Reporoducibility vs (...) Currency (?)
345- @blaise: We should consider a separate repo/pipeline for CI images because their revision cycle is different from Tahoe-lafs
346- @meejah: there is not a lot of project or version specific code added to the docker images.
347- @meejah: I don't want to run ci against a previous frozen version. I want to run CI against the current version.
348- @meejah: useful to pull the latest platform, maybe pin the python.
349- @ben: we can fix what we currently have (the Dockerfile infrastructure) and consider making changes separately.
350- Ben will explore a PR building with the upstream images without the intermediate docker images.
351
352#### Consider pinning Python separately from platform
353
354- cache and pin the platform? (criteria?)
355- cache and pin the Python? (criteria?)
356
357
358
359## Dec 3, 2024
360### Attendees
361- Ben
362- Blaise
363- Flo
364- Shane
365- Meejah
366- Chris
367- Jeff
368
369
370#### We need a release, soon
371@hacklschorsch
372
373#### CI failures
374- @btology happy to migrate CI off CircleCI (we chose Circle for reliability, but that has changed)
375    - 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.
376    - Todo: Update fedora builder to fc41
377- Typecheck fails on `master` https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4115
378- Oracle Linux fails: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4135
379- Master branch does not build
380    - Integration tests do not run on master branch
381- Nix pacakge build does not work
382    - Too Slow:https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4126)
383    - Cachix does not have current images, so dependencies must be built from source.
384    - We need Cachix token [trac](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4134)
385    - We need access to the Cachix org to regnerate the token
386    - Do we care about nix?
387        - If someone needs the flake for Tahoe-lafs, eg (private storage?) they will fail.
388        - Maybe we consider that "downstream" and people can fix it.
389- PyPi: ownership for prod, but only JP has access to test.pypi
390- Ubuntu builder fails https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3949
391- We build wheels for Windows, Mac OS, Debian and PyPI
392- Should we decide which CI are "blockers"?
393    - Debian, Mac OS and Windows MUST be green
394    - If no one complains, then they dont block
395
396
397## Nov 26, 2024
398### Attendees
399
400- Ben
401- Blaise
402- Flo
403- Shane
404- Meejah
405- Chris
406
407### New Items:
408
409#### Tahoe Project open office hours
410- Consider a standing schedule for folks to drop in with questions and pairing.
411- Blaise is available to turn on the lights, start the coffee pot and arrange the chairs.
412- Meejah suggests 15:00 UTC might be a good time for Europe and North America.
413
414#### GridSync
415
416[Standalone magic-folder binaries fail due to missing win32com.shell import](https://github.com/gridsync/gridsync/issues/707)
417[PyInstaller/frozen tahoe executables fail to execute on macOS 13 due to missing libintl](https://github.com/gridsync/gridsync/issues/709)
418
419#### User Stories for Landing  Page: www.tahoe-lafs.com (and related Wiki content)
420- Describe the CRUD lifecycle
421    - Who does the CRUD ?
422    - What privs do they need?
423- Failure Scenarios:
424    - Host outages? (no response from host, page not found, ...)
425    - Content bugs? ()
426@hacklschorsch wants :
427    - static landing page sounds good
428    - enough redirect to preserve the original trac urls https://docs.gitlab.com/ee/user/project/pages/redirects.html
429   
430   
431- Wiki Pages are mostly reproducible
432    - Before:
433        - https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095
434    - After:
435        - https://forge.lafs.eval.latfa.net/tahoe-lafs/trac/issues/4095
436    - NOT reproducible:
437        - dynamic(ish) content like Roadmap,
438
439
440#### Broken CI updates
441
442- CircleCI keeps asking for an SSH key in some fork or PR!?
443- Flo thinks he has fixed most of CI issue,
444- but there is still a flaky systemtest which fails from time to time
445- Ben is trying to reproduce this flay part with GH actions
446
447- Refactor (big) tests, see https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4078 and then https://github.com/tahoe-lafs/tahoe-lafs/pull/1354
448    - 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) )
449    - @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)
450    - Differing seeds for random number generators can result in strange behaviour so @Chris points out that we can force `PYTHONHASHSEED=1` and force consistency.
451
452#### FOSDEM 2025
453
454- Flo and Ben would like to present some works (e.g.: Mobile, Tracker, Website),
455
456
457## Nov 19, 2024
458### Attendees
459
460- Blaise
461- Rodrigo
462- Meejah
463- Chris
464- Jeff
465- @hacklschorsch
466- Shane
467
468### New Items:
469
470#### User stories for ticketing system
471Meejah 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.)
472
473#### SupaWiki and Tahoe for private content.
474
475- Describe the threat model. Be clear on the expectations resulting from the specific deployment mode.
476For example, with Desktop apps there is "Trust on every use" so it is "less secure" than locally installed code.
477
478@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.
479
480@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?
481- Prefer the term "exposure" over trust. There is no trust in tahoe, just exposure.
482
483@Rodrigoplp: we dont' yet have specific constraints, because we're exploring an example (the private medical facts)
484- The work that needs to be done is to make clear where the exposure begins.
485- If the system requires many nuanced decisions, then it will be used by experts
486- If you need to access simple users, then they need apps that have few dials and levers
487
488@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.
489
490@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.
491
492*Questions*
493- if an app can add a layer of access control, *then* it can facilitate sharing, revocation and recovery?
494- should we add glossary entries for terms like `exposure` vs `trust`
495
496### Todos:
497- Explicit doc for the "security model" (inclusive of:
498    -  https://tahoe-lafs.readthedocs.io/en/latest/architecture.html#security
499    -  https://tahoe-lafs.readthedocs.io/en/latest/about-tahoe.html#what-is-provider-independent-security (ie.  The "provider-independent security" doc)
500- 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")
501- Add Glossary entries:
502    - exposure
503    - trust
504    - sharing
505    - revocation
506    - recovery
507    - membrane
508    - macaroon
509
510
511#### Broken CI
512
513@hacklschorsch : the tests seem to fail around HTTP. Foolscap seems to work but HTTP will pass and then fail.
514https://github.com/tahoe-lafs/tahoe-lafs/pull/1381#issuecomment-2444698978
515(maybe improve setup and teardown? see: allmydata.test.test_system.HTTPSystemTest )
516
517Ben noticed that there are less failures on the PAID circle CI account?!
518Ben will try to verify this using the LA fork:
519https://github.com/LeastAuthority/tahoe-lafs/tree/master, which now fails on CircleCI because of this ghost SSH key issue.
520
521### Beware logging
522There are several log sources and they are joined (manually) using timestamps :frowning:
523- Eliot  (`eliot tree`, `eliot prettyprint`)
524- Twisted
525- Python logger
526
527#### FOSDEM 25 in Bruxelles ?
528- Should we present a talk here?
529
530
531## Nov 12, 2024
532### Attendees
533
534- Ben
535- hacklschorsch
536- Jeff
537- Rodrigo
538- Shane
539- Blaise (late)
540
541### New Items:
542
543#### SupaWiki https://supawiki.com/
544Rodrigo joined and presented the idea to record personal data in a safe/private wiki.
545
546Update from blaise, limited availability during mourning:
547
548Public Repo for the integration app is: https://github.com/blaisep/private_facts
549@rodrigoplp is blasting ahead with integration into supawiki.com
550
551#### Mobile Tahoe-LFS mobile app in Haskell
552Good news, a few PRs have been merged: 11, 14, 15, 17, 19, 20 and 21:
553https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/merge_requests/?scope=all&state=merged
554
555#### User stories for Tahoe-LAFS end-users:
556Jeff and Blaise are working on describing how Tahoe-LAFS works.
557Leading to a sequence diagram (WiP):
558https://github.com/blaisep/private_facts/blob/main/docs/source/upload_content.puml
559
560#### MoveOffTrac
561- Pairing meeting on user stories postponed.
562- Possible licensing issue discussed with Codeberg. In short, if this is dual-licenced project, it should not be an issue.
563- 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)
564- Ben needs more info from Meejah and Pete to try to get a written approval from Codeberg.
565- As a reminder: this is not a blocker, until we decide to move the code from GH to CodeBerg (not in scope so far).
566
567#### CircleCI
568- Ben is working on the SSH ghost key issue
569- More info in [#4098](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4098#comment:17)
570- The problem may be fixed in 2 ways:
571  1. gaining admin access (using a temporary GH user) to add and remove an ssh key (hopefully cleaning the dirt in the pipes)
572  2. forcing https checkout using a custom step (PR in progress)
573- Rodrigo said it may be worthed to consider alternatives to CircleCI, like an independent version of GitHub Actions.
574- As a reminder: the CI is already half GH, half CircleCI. But if GH is doing better, both look vendor locking.
575- 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
576
577
578#### Other links:
579https://yopass.se/   (Maybe uses Tahoe?)
580https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.TGPPL.rst
581
582
583---
584
585## Nov 05, 2024
586### Attendees
587
588- Ben
589- Blaise
590- Chris
591- hacklschorsch
592- Jeff
593- Meejah
594- Shane
595
596
597### New Items:
598
599#### Project Adoption
600The creator of [SupaWiki](https://supawiki.com) is interested in being able to create and read private objects using Tahoe.
601
602@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.
603
604### Ongoing
605
606#### Trac migration with keywords
607[PR](https://github.com/tahoe-lafs/trac2gitea/pull/31) in progress for trac2gitea to migrate keywords as labels (total = 912 w/ some dupplicates).
608
609Let's meet offline to review https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095 and memorialize a decision process.
610- summarize the user scenarios ([stories](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md))
611- clarify the constraints and requirements
612- clarify the scope of each milestone (eg. describe structure of an issue, choose. a target pla)
613
614#### CircleCI
615- Making progress in related repositories (e.g.: ZKAPAuthorizer) and learning for Tahoe-LAFS
616- ssh key error seen in many projects, inluding Tahoe-LAFS: WiP to understand/avoid it
617- Too much permissions by default
618
619#### RClone
620- https://forum.rclone.org/t/tahoe-lafs-backend/6625
621- 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.
622
623#### Python packaging
624- Is there a more "standard way" of packaging Python (Ben found it heterogeneous)?
625- Blaise and Jeff are investigation [UV](https://github.com/astral-sh/uv): promessing, but?
626- Tahoe-LAFS still uses [Makefile](https://github.com/tahoe-lafs/magic-folder/blob/main/Makefile)!
627- Note: Tahoe-LAFS packages are not deployed to PyPi from CI
628- BTW: PyPi is about to drop signature w/o alternative
629- Meejah still publishes signatures for other projects
630- See https://github.com/meejah/pypiratzzi/
631
632---
633
634## Oct 29, 2024
635### Attendees
636
637- Ben
638- Blaise
639- Chris
640- hacklschorsch
641- Pete
642- Jeff
643- Meejah
644- Shane
645
646
647### New Items:
648
649#### CodeBerg has some retrictions about the license
650- https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md#2-allowed-content-usage
651- Re-licensing does not look like an option for Tahoe-LAFS (TGPPL)
652- This is a cons, but there are other Forgejo providers
653
654#### Magic-grid installation is fixed (Meejah)
655A simple typo in `pyproject.toml` resulted in ugly traceback. https://paste.ofcode.org/wapHcem8hXBVgigJ8LQUFg
656
657#### Explosion of interest in the Health app
658Front end developers from the Nivenly community (folks behind https://hachyderm.io ) are excited about a health tracker with provider-independent privacy.
659
660#### Jeff working on 1101
661Writing 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.
662    - The Twisted CLI test infrastructure is weak.
663    - The way the Twisted handles cmd args is somewhat magical.
664    - Ideally, we re-write the CLI with `click` ... :santa:
665
666#### Learning to run individual tests:
667
668[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`
669
670#### Help is on the way for CI.
671
672B3n reports that there is approval for applying some of his time to work on CI.
673
674#### something about SEEDS proposal
675??
676
677#### Maybe release a new Magic-Folder
678    - conflict-resolution branch may be messy.
679    - Chris might benefit for grid-sync
680    - The Tahoe client UI for Magic Folder is ... not smooth because it shows the various levels and metadata..
681   
682#### Case Study: Bootstrap WireGuard using magic wormhole
683- One time use of magic wormhole to set up or add a wireGuard node. @meejah
684
685#### trac2gitea keywords
686- https://github.com/tahoe-lafs/trac2gitea/issues/28
687- ticket keywords would generate 1846 new labels
688- Meejah suggested to look at https://github.com/twisted/twisted which had similar concern (e.g: #11563)
689
690### Related links:
691
692[STUN tunneling](https://github.com/magic-wormhole/magic-wormhole/issues/6#issuecomment-147854595)
693
694## Oct 22, 2024
695### Attendees
696
697- Blaise
698- Chris
699- hacklschorsch
700- Meejah
701
702
703### New Items:
704#### Debian build
705Is there a set of tools we can use to validate our Debian builds?
706#### Decision: let's avoid including Debian-specific dependencies in upstream.
707
708
709#### Python 3.13
710Jeff noticed a weird error with 3.13.rc2: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118#comment:4
711Chris is checking compatiblity. 3.13 deprecated `cgi` module and there are dependencies on it.
712#### Decision: We should move cgi classes to use the Twisted APIs
713
714#### Testing NAT with pytest and libvirt Virtual Networking
715@meejah : testing NAT with pytest is a headache
716@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/)
717@chris : `headscale` is a open source tailscale/wireguard to VPN all-the-things (orthogonal, but interesting)
718https://archive.fosdem.org/2023/schedule/event/goheadscale/
719
720---
721
722## Oct 15, 2024
723### Attendees
724
725- Blaise
726- B3n
727- Meejah
728- Jeff
729- Chris
730
731
732### random notes
733
734- some discussion of security etc around Terraform-managed Gandi DNS
735- some meta-discussion of privacy of data for some use-cases
736- distributed forgejo (etc) PRs mentioned, discussed a bit
737- blocker: CI not working https://github.com/tahoe-lafs/tahoe-lafs/pull/1377
738- Contributor/Developer [step-by-step guide](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118)
739- 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)
740- Twisted project used https://github.com/chevah/trac-to-github to migrate from trac to github
741
742#### Decisions:
743- convert legacy keywords to static labels
744- link to stored queries that contributors can reuse.
745- Become independent of [CircleCI](https://sr.ht/~meejah/magic-grid/) is an aspiration. Some brave soul should do it.
746- we'll need CircleCI until we can make CI run on the three platforms: Linux, Windows, Mac.
747- Look at using [magic grid](https://sr.ht/~meejah/magic-grid/) to automate the tutorials
748
749### [Issue Tracking](https://github.com/tahoe-lafs/MoveOffTrac/blob/main/docs/UserStories.md)
750@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.
751We learned:
752- There are additional, distinct,  roles with associated privileges and activities.
753- Many issues are associated with each other using the free text `keywords` feature, which is not covered by the current migration.
754- Ticket Discovery: The View Ticket page has many pre-defined queries which have no direct counterpart outside of trac.
755
756### Related links:
757- [Git Federation](https://drewdevault.com/2018/07/23/Git-is-already-distributed.html)
758- [Git over ActivityPub](https://forgefed.org/)
759
760
761
762### Gaps in the [Contributor guides](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4118)
763A new contributor has no clear path to a usable PR. The instructions assume familiarity with the project. For example:
764- A contributor cannot find related tickets (WIP, previous solutions, dependencies, @meejah's tutorial automation ticket)
765- How to collaborate on tickets that relate to each other?
766- CI/CD: Which commands build the project?
767- ...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)
768- When to use the various Tox targets?
769- 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)
770
771### QUESTIONS: current contributor user stories
772- As a current contributor, when you want to find a ticket in Trac, do you:
773    - Use a prepared query on the [View Ticket](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/ViewTickets) page?
774    - Use the Custom query form?
775    - Follow links inside an existing issue?
776
777
778
779---
780
781## Oct 8, 2024
782### Attendees
783
784- Blaise
785- B3n
786- Chris
787- hacklschorsch
788- ccx
789- Jeffhimself
790
791
792### New Items
793
794
795Include tests in the description of an issue.
796- https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2050#comment:7
797
798Proposed Docs config changes
799    - create
800        - docs/test (to store the docs-specific tests)
801        - docs/source (to restrict Sphinx to the the docs content, exclude tests, etc.)
802    - add sys.path to docs/source/conf.py (to find the source directory)
803    - Makefile (run Sphinx against the source directory)
804    - Makefile doc-testing (add target for `make doc-testing`)
805
806
807#### The step-by-step Developer Guide
808A failing test(s) for being ready to
809- build docs (`tox -e docs` ?)
810- run the tests?
811- submit a PR (nothing broken that the author couldnt' check themselves)
812- build a release
813
814#### Trac migration Developer Experience
815- @ccx Search? Associating trac issues to a feature is a PITA (labels, components are migrated)
816- @chris: developers should be able to see CI results; what is the integration of issue/commit/PR
817- @blaisep : reorder commits to match their tests.
818- Codeberg CI https://codeberg.org/Codeberg-CI/woodpecker
819
820### Questions
821- How does tox know about the fixtures?
822- setup.py install returns:
823`error: The 'zope-interface>=5' distribution was not found and is required by Twisted, twisted
824` (and I'm not supposed to run setup.py)
825
826---
827
828## Oct 1, 2024
829### Attendees
830
831- Blaise
832- B3n
833- Chris
834- hacklschorsch
835- Jeffhimself
836- Meejah
837- Pete
838
839### New Items:
840
841- Release Checklist, simple PR edition?
842- Public Grid?
843- Public mailbox server? (MagicFolder)
844- Fowl and Dilation mentioned as unannounced apps related to file transfers
845
846
847#### Trac Migration docs
848- WIP https://github.com/tahoe-lafs/MoveOffTrac/tree/docs-update-24w40/docs
849- Docs tickets will serve as the initial spike to test new user (Blaisep) creation.
850- User Account management has some cases we want to excercise (forgot password, account confirmation, etc)
851- Redirecting legacy URLs to the new issue tracker.
852
853### Prior Items:
854
855- 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)
856- fixed cryptography library issue https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4100#no1
857
858#### Dependency management
859
860- "Tahoe is an app, so we shouldn't pin dependencies" @pete
861
862#### related projects
863- "Git with you": Peer to Peer git colab (not via github) using pairon (?)
864- [Dulwich](https://www.dulwich.io/docs/#getting-started) is a python implementation of git
865- https://meejah.ca/blog/wizard-gardens-vision
866- [Copybin](https://carml.readthedocs.io/en/latest/command-copybin.html), but private
867- https://magic-folder.readthedocs.io/en/latest/invites.html#invites
868- Brian's STUN server (?)
869- @pete mentioned research on [OCAP](https://github.com/ocapn/ocapn)s over [CRDT](https://github.com/alangibson/awesome-crdt)s
870- exposing ssh using [Inlets sshmux](https://inlets.dev/blog/2024/02/05/access-all-your-ssh-servers-with-sshmux.html)
871- https://www.wireguard.com/
872- [ZCAP](https://w3c-ccg.github.io/zcap-spec/) is separate from Tahoe. [Github]()
873
874
875---
876
877
878## Sep 24, 2024
879### Attendees
880
881- Blaise
882- B3n
883- Chris
884- hacklschorsch
885- Jeffhimself
886- Meejah
887- Pete
888
889### New Items:
890
891- The new tutorials and docs will default to systemd in examples for running as a service.
892- We'll start migrating issues. @b3n will provide a summarized plan next week. If necessary, we'll migrate to a self-hosted forgejo instanc.
893
894#### Migration: User Management topics
895- Account creation flow
896    - Auto-registration OFF,
897    - User Creation
898        - Auto create if Github auth'd
899        - Manual
900- Forgotten password flow (eg. Github IdP is down)
901
902#### Tahoe-S3
903- A client which maps the finger tree into S3 numbers (and deal with S3 size limits)
904- Finger tree used to handle failure scenarios
905- Immutables only
906- Doesn't create the shares
907- Doesn't replace the native Tahoe storage server
908- A challenge to implement in Haskell because it requires intimate knowledge of Tahoe internals, REST and Foolscap APIs
909
910#### ADR: Tech stack decisions
911- Whither Haskell?
912    - How much functionality is already implemented?
913    - Haskell is a good high-level language.
914- Whither Rust?
915    - If we build *low-level* components in Rust, there's opportunity for re-use.
916    - Rust has lots of tooling
917
918#### Improving Immutables
919- Single block writers are the problem (@ccx)
920- blockless multi-writer implementation is the answer
921
922Speaking 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.
923
924
925## TILs
926
927- Duplicity has a backend option [`--tahoe`](https://fossies.org/linux/duplicity/duplicity/backends/tahoebackend.py)
928- Python pre-compiled for [iOS](https://github.com/PyO3/maturin/issues/1742#issuecomment-1686219705), courtesy of [maturin](https://www.maturin.rs/tutorial)
929- Room for improvement in describing our goals, roadmap milestones, features, etc. ("implement Tahoe-S3" vs "have a phone app")
930
931
932---
933
934## Sep 17, 2024
935### Attendees
936
937- Blaise
938- B3n
939- Pete
940
941### New Items:
942
943#### Trac migration
944The 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).
945
946#### Provisioning and configuration management
947On 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.
948This is an area with too many choices.
949
950Some of the resources that came up in the discussion may be interesting to others:
951- [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.
952- [Packer](https://www.packer.io/) from HashiCorp, takes the "images as code" approach. Concerns about a terraform-style licensing issue came up.
953- [Distrobox](https://distrobox.it/) to create containers with custom configurations.
954- [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)
955- 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).
956- 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.
957
958---
959
960## Sep 10, 2024
961### Attendees
962
963- Blaise
964- hacklschorsch
965- Chris
966- Ccx
967
968### Step-by-step approach to getting started
969Instead 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
970
971
972### Express modularity using C4 notation for the diagrams
973- layers of abstraction Context, Container, Component, Code
974- [PlantUML includes](https://crashedmind.github.io/PlantUMLHitchhikersGuide/) C4 in the std lib
975- https://crashedmind.github.io/PlantUMLHitchhikersGuide/C4/C4Stdlib.html
976
977### Describing Tahoe to local user groups
978As prep for presenting to larger conferences
979@blaisep offers to do user group talks (later: conference presentations)
980- Historical context (eg. why did they create SDK first? Surveillance capitalism, enshitification, etc.)
981- Use case examples (creating examples relevant to end users)
982    - The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
983    - Storage only is low value
984
985#### Challenges
986Either gaps in functionality or gaps in understanding
987- Describing the security boundaries (eg.vs corp walled gardens)
988- Key management, rotattion, revocation
989- The "dumb pipe scenario" (provider-independent security), use cloud storage for personal data.
990- No generic writer( @ccx ) can't write everything to/from everywhere.
991
992#### Comparisons
993Describing Tahoe in terms of something they already know.
994- 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.
995Flo said NIP-104 will be a big improvement for private messaging
996https://github.com/nostr-protocol/nips/pull/1427
997 
998- IPFS: similar layer of abstraction. More client implementations. Scales differently? https://news.ycombinator.com/item?id=37750529
999- Signal: but for storage ( _can Signal self host?_ ) The reference implementation is a useful app, SDKs, Open protocol, ubiquitous.
1000- Syncthing: (peer-to-peer) but with decentralization and capabilities (@ccx)
1001
1002---
1003
1004## Sep 3, 2024
1005### Attendees
1006
1007- b3n
1008- Blaise
1009- hacklschorsch
1010- Meejah
1011- Ccx
1012
1013
1014## Prior Items
1015
1016- Glossary items
1017
1018- Debian packaging maybe delayed because `pycddl` has never been packaged for Debian. We might make it in by the end of the year. @hacklschorsch
1019    - (we should check if any of our other dependencies have never been packaged for Debian @meejah)
1020
1021- 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.
1022  - @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.
1023  - "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
1024
1025- @hacklschorsch: Can we lower the Tahoe-LAFS merge process turnaround time?
1026  - Optimistic Merging / other ideas for the Tahoe-LAFS GitHub repo? to make contributing leaner/more fun
1027  - meejah: A PR that is green and has approvals is already merged quickly now.  If not, write on IRC
1028  - 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.
1029
1030
1031## New items
1032
1033- Veilid: is it real, where are the intersections?
1034
1035@ccx : it's a library which bundles a number of p2p protocols. No existing app yet.
1036
1037@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.
1038
1039### Making it easier to develop on Tahoe
1040Separation of concerns, breaking tahoe into modules would be a good next move. @ccx (@blaise start a trac issue?)
1041
1042---
1043
1044## August 27, 2024
1045### Attendees
1046
1047- b3n
1048- Chris
1049- hacklschorsch
1050- Meejah
1051- Pete
1052
1053### Updates
1054
1055- Flo
1056  - LA wants to hire a senior Haskeller to work on LAFS
1057  - iOS: Obsidian is still investigating the "illegal instruction" compiler/linker issue
1058  - 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
1059  - Works with Blaise on Tahoe-LAFS docs
1060  - ... and would like to pair more in general
1061 
1062- Chris
1063  - published a Rust crate for LAFS: https://crates.io/crates/lafs 
1064 source repo: https://github.com/crwood/lafs
1065  -  Local and much faster than the Python equivalent (.25s instead of 24s on Chris' machine)
1066  -  It comes with Python bindings
1067
1068- b3n
1069  - Codeberg importing issue acknowledged by them
1070  - Would like to discuss self-host vs. SaaS for the upcoming GitTea with Meejah
1071
1072- Meejah
1073  - Magic Wormhole protocol work
1074  - FOWL Policy & Permissions API mostly done, soon to be merged & released.
1075  - [Pear-On](https://sr.ht/~meejah/pear-on/) should work ATM - testers welcome
1076
1077
1078## Previous items
1079
1080@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)
1081
1082
1083## New Items
1084
1085- 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.
1086- 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`).
1087- @blaisep has limited availability until Sep 30 2024
1088
1089
1090---
1091
1092## August 20, 2024
1093### Attendees
1094
1095Blaise
1096b3n
1097ccx
1098Chris
1099hacklschorsch
1100
1101## Previous items
1102
1103### WTF Circle CI?
1104* Is it broken? Maybe drop it?
1105* Do we have much logic in the Circle CI?
1106* It might be tests failing, rather than a systemic fail (credentials, dependencies, etc)
1107* "AMP server"? (twisted RPC framework) @ccx
1108* * https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4
1109* https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/4958/workflows/d16324ae-293d-45c8-ba97-6ac39ef4cfc4/jobs/86344
1110
1111
1112### Towards a portable CI
1113* keep logic in the repo
1114* avoid huge Nix dependency (or maybe build a weekly Nix image)
1115* https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html
1116
1117
1118
1119### Describe the build process
1120* add prose in the dev guide to the files in the repo describing the build (@blaise)
1121* update the release checklist: https://tahoe-lafs.readthedocs.io/en/latest/release-checklist.html
1122
1123### Mutables, Service of Happiness
1124* @blaise asked where we were at with mutables...
1125* using mutables as single writers (eg. Tahoe backup)
1126* It's a big thing, eventually replace with a proper design for a multi-writer primitive
1127* For now, stick with readonly or Magic Folder for examples and getting started guide.
1128* > 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
1129
1130### [MoveOffTrac](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac) - [#4095](https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4095)
1131* 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).
1132* 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!
1133* New Forgejo instance (copy/paste from Gitea) to be closer to Codeberg: https://forge.lafs.eval.latfa.net/tahoe-lafs/
1134* Testing migration to Codeberg with pagination bug (workaround), performance issue (deadlock error) and user mapping (unlikely possible)
1135* Keyoxide.org may help us to link all those account!?
1136
1137## New Items
1138
1139* Blaisep has trac !!!
1140* TIL: Trac use "htdigest" (@meejah "i'll put a note in ~trac")
1141
1142---
1143
1144## August 13, 2024
1145### Attendees
1146
1147Blaise
1148b3n
1149ccx
1150Chris
1151hacklschorsch
1152Pete
1153
1154## Previous items
1155
1156- Blaise needs a trac account to CRUD issues, for docs, etc.
1157- GitTea self register results in many spam accounts @b3n
1158- We have users on Trac and users on GitHub, sometimes the names are different. @b3n
1159- Trac Migration Plan [WIP](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/MoveOffTrac)
1160- migrated Trac eval instance (https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-05-23/issues)
1161
1162## New
1163- 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
1164- Consider using Google, GitHub auth for auto register CodeBerg accounts
1165- Consider upgrading/self hosting Trac instance (maybe it's not so bad after all)
1166- Could we make trac readonly and do new work on the ["demo" instance](https://www.lafs.eval.latfa.net/) instance?
1167
1168
1169### Migrating Issues: Goals and Constraints
1170- Anything off of track is better
1171- Github Issues are accessible, but there is risk of lock-in, enshitification
1172- Gitea/Forgejo/CodeBerg is future-proof (no lock-in)
1173- Inconsistent tribal knowledge about decisions made last year @blaisep et al.
1174
1175---
1176
1177
1178## August 6, 2024
1179### Attendees
1180
1181Blaise
1182b3n
1183Chris
1184ccx
1185hacklschorsch
1186meejah
1187Pete
1188
1189
1190Thought leaders:
1191Amber O'Hearn (not so much)
1192Larry Lessig
1193Brewster Kahle
1194Christine_Lemmer-Webber (spritely)
1195
1196
1197New Items:
1198
1199Pete's foundation doc: https://docs.google.com/document/d/1MpFUUB9sX-SA6rsHpq9ZkIhrnZaG3zwzI6KJ9I0VAgE/edit
1200
1201## Comparables
1202
1203* https://spritely.institute/about/
1204* https://ocapn.org/
1205* https://darkcrystal.pw/ (meejah)
1206* ISRG https://www.abetterinternet.org/
1207* https://divviup.org/
1208* https://sans-io.readthedocs.io/
1209
1210
1211### Mission statements
1212
1213"Infrastructure for Libre, gratis, private, intentional composability and sharing " @Blaise , @meejah
1214
1215Device introduction @meejah
1216
1217"social infrastructure tools (sharing and composability to support differrent social structures and relationships)"
1218Bootstrap social relations, dependency maps.
1219@Chris
1220
1221secure sharing with least privilege (zero trust?) @ccx
1222(Higher resolution, more ephemeral than app-level privs)
1223https://roy.marples.name/blog/posts/capsicum_vs_pledge_final_thoughts
1224
1225Discoverable, "~~decentralized~~" (Autonomous?) / disconnected in nature (eg. TLS without the PKI) @Pete
1226Provider independent
1227
1228
1229### Community Survey
1230
1231@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.
1232eg, decouple wire protocol from the U I.
1233https://sans-io.readthedocs.io/ @Pete
1234
1235Who is the audience? grandmas with photosharing? Political activists? crypto bros?
1236
1237---
1238
1239## July 30, 2024
1240### Attendees
1241
1242Blaise
1243hacklschorsch
1244b3n
1245Chris
1246Pete
1247ccx
1248
1249## Highlights:
1250* Project governance structure
1251
1252## Agenda
1253
1254### Previous topics:
1255
1256* Docs PR in progress
1257
1258## New Topics:
1259* A proposal for a governance structure (Pete)
1260
1261### An endowment and governance structure
1262
1263* Align the Tahoe mission with the right institutional structure.
1264* Similar cases:
1265    * The [Veillid Foundation](https://veilid.org/about-us/) is a very close analog.
1266    * https://www.djangoproject.com/foundation/
1267    * https://foundation.mozilla.org/en/who-we-are/
1268    * https://www.abetterinternet.org/documents/2023-ISRG-Annual-Report.pdf
1269    * https://www.abetterinternet.org/about/
1270    * https://matrix.org/foundation/about/
1271* Fund some dedicated project support
1272
1273### Who is the community?
1274* Board members
1275* What are the activities?
1276* Intellectual property portfolio (trademarks, copyrights, patents)?
1277
1278### Who is NOT the community?
1279Where has the project stalled and why?
1280Why do people drop in, get frustrated, and leave?
1281What are the blockers for adoption and how can we overcome them.
1282
1283### Tahoe public resources; what could we build next?
1284* Public test grid ?
1285* ZCap servers ?
1286
1287#### Other options for funding services
1288
1289* https://docs.opencollective.foundation/how-it-works/fees
1290
1291#### Dependent projects
1292GridSync (golang) ?
1293Magic Wormhole ?
1294
1295#### Dependencies
1296* Twisted
1297* Mutables
1298* Python https://meta.pycqa.org/introduction.html
1299
1300---
1301
1302## July 23, 2024
1303
1304### Attendees
1305
1306Blaise
1307hacklschorsch
1308Meejah
1309b3n
1310Chris
1311ccx
1312
1313
1314## Highlights:
1315* Mutables would be a good thing for the Foundation to fund.
1316* The goal of [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) is to replace foolscap. Not there yet. (sucks to require a node online)
1317* Create project for client filesystem
1318
1319## Agenda
1320
1321### Previous topics:
1322
1323Meejah:
1324* Trac disk space restored
1325* Granted admin privs
1326
1327hacklschorsch:
1328Mobile LAFS [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile) with draft description of Features and Scope.
1329
1330B3n:
1331Next, Trac migration path (DNS, )
1332Codeberg bug
1333
1334
1335### New topics:
1336* B3n: Prepare Trac migration operating instructions (DNS settings, etc)
1337* B3n: Help Meejah create Trac account (for Blaise).
1338* Decision: Let's try to make the single mobile code base work (hacklschorsch)
1339* Deep integration with the OS is not MVP  (hacklschorsch)
1340* [Gitlab milestones](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/milestones/7#tab-issues) don't have the OS integration yet.(ccx)
1341* Create FUSE module for the dev environment (ccx)
1342
1343## Notes:
1344
1345Chris:
1346* [Porting Tahoe hashlib](https://github.com/crwood/deterministic-keygen/issues/5) to Rust and found an issue:
1347* 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.
1348* Curating a common set of test vectors
1349
1350#### Restore scenarios
1351Todo: write up a description, describing permuted scenarios (Meejah, Chris)
1352(We need better words to describe the operations and events)
1353
1354Four scenarios:
1355* Client failed, grid is fine
1356* Grid loses nodes
1357* Grid loses partial data
1358* Grid loses all data
1359
1360
1361#### Mutables
1362* Don't do service happiness (ccx's complaint)
1363
1364Can't detect all the restore scenarios. Sometimes all the shares end up on one server :frowning:
1365What is the meaning of Happiness? Happiness is just a number (Meejah)
1366
1367#### Mobile
1368* Need to write up the description in  [Wiki page](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/TahoeLAFSMobile)
1369* We need to describe how much of the functionality
1370* Foolscap requires a node online, [GBS](https://gitlab.com/tahoe-lafs/gbs-downloader) does not
1371* "User defined grid" ? (ccx)
1372* What if we had a gridsync client (b3n)
1373* Deep integration with the OS is not MVP  (hacklschorsch)
1374* Obsidian has something called `backend` which is different.
1375* [Obelisk overrides](https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
1376* Let's have good interface definitions (ccx)
1377* [Gitlab repo](https://gitlab.com/tahoe-lafs/tahoe-great-black-swamp) Code
1378
1379
1380#### File system browser? (ccx)
1381* Can we use the native [mobile libraries](https://emanual.github.io/Android-docs/guide/topics/providers/document-provider.html)?
1382* How much do we need in the GUI?
1383* (https://gitlab.com/tahoe-lafs/tahoe-lafs-mobile/-/blob/main/obelisk/haskell-overrides.nix?ref_type=heads)
1384
1385#### Create project: Investigate FUSE File System Support (ccx)
1386* Read/Only native client
1387* Read/Only magic folder
1388* Read/Write Magic Folder
1389* Built on top of GBS downloader
1390
1391---
1392
1393
1394