Skip to content

Commit

Permalink
Merge pull request #31 from nodejs/meeting-2022-09-05
Browse files Browse the repository at this point in the history
doc: add minutes for meeting 5 Sep 2022
  • Loading branch information
jviotti authored Sep 9, 2022
2 parents a6f2593 + 27c69a3 commit 49c5d2f
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions meetings/2022-09-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Node.js Single-Executable Meeting 2022-09-05

## Links

* **Recording**: https://youtu.be/93cIMtkQaak
* **GitHub Issue**: https://github.com/nodejs/single-executable/discussions/19

## Present

* Anna Henningsen @addaleax
* Darshan Sen @RaisinTen
* Jean Burellier @sheplu
* Juan Cruz Viotti @jviotti
* Maël Nison @arcanis
* Tobias Nießen @tniessen

## Notes

During this call, most of the discussions revolved around the problem of
designing a general Virtual File System that would fit every necessary use
case, ranging from compression support, native add-on interoperability, etc.

The key conclusion from the call is that designing a truly universal VFS that
checks all the boxes that we care about and the ones that are probably unknown
so far is not trivial. For this reason, we will attempt to make VFS
user-defined for the SEA MVP. That way, we will have a better sandbox to play
with VFS', see what people come up with and eventually bring back these
learnings to the SEA project without getting indefinitely stuck at the VFS
phase.

To accomplish this decoupling, we hope to:

- Provide hooking capabilities to Node.js to allow developers to extend
`require()`, `fs` and related key components of Node.js to support arbitrary
virtual file systems without monkey-patching these modules like i.e.
Electron, Yarn and PKG do at the moment.

- Fix remaining issues on the Resource Injector current implementation
(https://github.com/postmanlabs/postject) for injecting multiple sections of
data. One of these sections will contain the VFS byte-stream, and the other
one will contain the bootstrap script that can be injected to `teach` Node.js
about the VFS of choice.

Once we have a better grasp on what the ideal VFS should look like, we will
attempt to ship the SEA project with a blessed VFS implementation.

We also touched on what the definition of "Single Executable Application"
means. Does it mean we will go out of our way to package every Node.js
application as a single file (embedding native add-ons, etc on the executable
itself)? Does an app that consists of the main executable along with sibling
".node" shared libraries still qualifies as a SEA? Clearly defining what an SEA
is (and is not) is key for identifying the core constrains for the ideal VFS
implementation later down the road.

## Action Items

- [ ] Make defining user-land VFS' feasible (given the plan outlined above)
- [ ] Define and document what SEAs really mean

## Upcoming Meetings

* **Node.js Project Calendar**: <https://nodejs.org/calendar>

Click `+GoogleCalendar` at the bottom right to add to your own Google calendar.

0 comments on commit 49c5d2f

Please sign in to comment.