Ticket #4104: 20250204-meetings.md

File 20250204-meetings.md, 50.9 KB (added by blaisep, at 2025-02-04T18:05:41Z)

MeetingNotes?-2025-02-04

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