Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node.js future directions - any interest in online or in person summit? #797

Closed
mhdawson opened this issue Jan 7, 2020 · 28 comments
Closed
Assignees

Comments

@mhdawson
Copy link
Member

mhdawson commented Jan 7, 2020

Given that we've just closed out 10 successful years of Node.js and are starting a new decade I'm wondering if there is any interest in a team/online/in-person session to strategize on what we think is important for the next n years of Node.js.

We did have a vm summit a number of years ago which was somewhat along these lines and have have some diagnostics summit's since then. I've been thinking it might be a good time to have a more general vm summit again or perhaps an on-line equivalent.

@nodejs/tsc any interest?

@mmarchini
Copy link
Contributor

I'd be interested (if it'll be open for non-TSC members as well)

@MylesBorins
Copy link
Contributor

MylesBorins commented Jan 8, 2020 via email

@mcollina
Copy link
Member

mcollina commented Jan 8, 2020

I'm interested as I've found the diagnostics and vm summit extremely productive.
I think a "future of Node" summit would be nice, trying to define some sort of vision for the next 10 years.

@mhdawson
Copy link
Member Author

mhdawson commented Jan 8, 2020

@MylesBorins my only thought on having it be separate is that we will get more/better focus on the one topic. The collaborator summits have so much going on it would be hard to dedicate enough time to this one topic while not preventing people being part of other important sessions.

@mmarchini I do think it would be open to all project members who are interested, just seeing what kind of interest we have at the TSC level to start.

@apapirovski
Copy link
Member

apapirovski commented Jan 8, 2020

Very big +1 from me. I think a focused summit on this topic would be very productive. Ideally it's in person much like the diagnostics summit.

(Ideally it would involve V8 folks too.)

@mmarchini
Copy link
Contributor

If we decide to do it in person, Netflix might be able to host it, depending on the dates and number of attendees.

Ideally it would involve V8 folks too

Agreed. Maybe npm folks as well?

@mhdawson
Copy link
Member Author

We have some interest, I'm going to tag for discussion at the next meeting to see if we can get more thoughts/input.

@joyeecheung
Copy link
Member

For this topic I think an online summit or an in-person summit colocated with a Node.js/OpenJS event would be nicer so that we can have more people chiming in.

@mhdawson
Copy link
Member Author

@joyeecheung, the Node.js/OpenJS event is already so packed I'm not sure we could fit in a full day for something like this. I'd also be concerned that people will not have enough energy left over even if we can. I'd lean towards trying a full day online summit (maybe 2 half days to try to cover timezones) for this one.

@ChALkeR
Copy link
Member

ChALkeR commented Feb 19, 2020

@mhdawson should this be pinned, perhaps?

@mhdawson
Copy link
Member Author

mhdawson commented Mar 6, 2020

Some initial thoughts on an agenda

  • Retrospective (1-2 hours?)

    • What were the key things that made Node.js successful in the last 10 years
    • What were the key values that supported that success
    • What worked in the management of the project, what did not
  • Looking Forward

    • Key technologies/trends that will influence what we should do in Node.js (0.5 to 1 hour per)

      • Types, type definitions
      • Package managers
      • Http evolution (QUIC, HTTP3 etc.)
      • Promise Based APIs
      • Production qualities of service
        • Diagnostics
        • Monitoring
      • Cloud Deployment
      • Kubernetes
      • Function as a Service (FaaS, Knative etc.)
      • APIs for domains (ex tooling team activities)
      • WASM
      • ESM Modules
      • Build/dependencies
      • Feature requests (review requests in the repo)
    • Technical Management of the Project (0.5 to 1 hour per?)

      • Key values going forward
      • Standards
        • Should the project define standards in some areas (for example package managers, package.json) ?
      • Requirements for core collaborator
    • Capture and Document Looking forward

      • Document key agreements from other sessions
      • Define key next steps along with champions for those or "help" wanted.

@gireeshpunathil
Copy link
Member

[not sure whether this is a strict tsc discussion or not]

some more (with some probable overlap)

  • node.js as a language
    • retrospective - adoption, consumption, user experience
    • prospective - use workload data and field experience to feed / influence language feature decisions
  • node.js as an JS platform
    • retrospective - scope in the JS spectrum
    • prospective - ironing out feature definitions for the backend
  • node.js as an open source project
    • retrospective - where are we matured, where are not
    • prospective - setting standards, show exemplary behaviors of an open source community
  • node.js as a github org
    • retrospective - health of resident repos
    • prospective - efficient balancing of backlog with available members
  • node.js as an (event driven) architecture
    • prospective - better integration with heterogeneous workloads
    • prospective - influence evented architecture in relevant use cases

@mmarchini
Copy link
Contributor

Another topic we can discuss is Native build toolchain for Node.js core and native modules, since any big shifts in that space would probably stay with us for the next 5-10 years.

  • Production qualities of service
    • Diagnostics
    • Monitoring
  • Cloud Deployment
  • Kubernetes
  • Function as a Service (FaaS, Knative etc.)

All of these are also related to another topic we could discuss: "Node.js readiness as an enterprise-grade runtime."

I also have some more controversial topics in mind, which could be classified as "revisiting the status quo":

  • Future of native modules and V8 updates:
    • With N-API and WASM, maybe we got to a point where V8 headers are not necessary for most use cases
    • Should we stop shipping V8 headers, in favor of being able to upgrade V8 more frequently?
  • As of right now, Node.js doesn't have a roadmap. Should we? What would be the benefits of a roadmap? What would be the downsides?
  • Introducing new API/modules in core: considering we don't usually remove modules (even APIs are unlikely to be removed), the trend is for our API footprint to keep growing in the next years. With that in mind, how do we decide what should be included? How do we decide what should stay out of core? Should we be more strict moving forward? Or should we be more flexible?

I don't have strong opinions on any of these yet, but I think it's important to revisit current assumptions to make sure they'll still make sense in the future.

@mhdawson
Copy link
Member Author

@mmarchini thanks for the suggestions. I'll let people comment for a while and then try to pull all of the suggestions/comments together.

@mmarchini
Copy link
Contributor

mmarchini commented Mar 13, 2020

Another topic:

  • Improving our test suite so it's less flaky-prone
    (or maybe: how to keep our test infrastructure healthy as we move forward)

I don't know how, but I think that's something worth discussing. Restarting the CI several times to land a simple PR can be a real burden for Collaborators today, alongside navigating the CI results, searching each failure to check if it is a flaky, etc.

Related: nodejs/node#31955 (comment)

@mhdawson
Copy link
Member Author

@mmarchini +1 great idea, green CI is important and I've heard a number of people comment on that.

@mhdawson
Copy link
Member Author

@nodejs/tsc pulled this together based on the suggestions made:

https://docs.google.com/document/d/1O4qk5iPN9_8ICJbk4svjnUnDoMcZtoUn8pMSkOHcVDk/edit?usp=sharing

Please comment. A few key things to think about

  • Any missing topics
  • Too much ? 10 sessions at 1.5 to 2 hours each would probably take 2 weeks if we did 1 session day.
  • Is this close enough to ask for input from all collaborators more directly (we've mostly been talking among TSC members so far).

@mhdawson
Copy link
Member Author

See this related comment on how we might schedule across time-zones: #836 (comment)

@gireeshpunathil
Copy link
Member

LGTM!

Any missing topics

I don't think so, looks like a good coverage

Too much ? 10 sessions at 1.5 to 2 hours each would probably take 2 weeks if we did 1 session day.

I don't think so, all are great and valid topics

Is this close enough to ask for input from all collaborators more directly (we've mostly been talking among TSC members so far).

I think yes. Role in Package management, should we have more influence on Package.json? - will this cover the ongoing need / choice of default package manager discussion as well?

@mmarchini
Copy link
Contributor

mmarchini commented Mar 28, 2020

A few more for the "revisiting the status quo" bucket:

  • should we drop CommonJS eventually?
  • Should we drop callback based APIs eventually in favor of Promise based APIs?
  • For APIs that get standardized elsewhere, should we drop our implementations in favor of the standards?

I'm not thinking none of this for the next year or so, but for 10 years from now: are those set in stone assumptions, or given enough time are we considering revisit those? I'm also not saying I'm in favor or against any of these, but I do believe it's worth discussing.

Also, if we decide to discuss those, we might want to coalesce all related topics into one (and maybe there are other topics we can do that to).

@mmarchini
Copy link
Contributor

Misclicked :(

@mhdawson
Copy link
Member Author

@mhdawson
Copy link
Member Author

think yes. Role in Package management, should we have more influence on Package.json? - will this cover the ongoing need / choice of default package manager discussion as well?

I'd say yes.

@mhdawson
Copy link
Member Author

Given the current environment and the logistics as discussed in: #836. These are some options we can consider:

  • Decide we don't need to do anything on this front, close
  • Pause idea for 3 months, and then revisit to see what makes sense
  • Try to do over longer time period (say 2 hour session per week or every other week with rotating time slot) over a number of months
  • Plan for virtual sessions in early June over 1 week
  • Plan for virtual session in late July over 1 week
  • Plan for virtual sessions at some point later in the year over 1 week
  • Plan Retrospective section (maybe 1-1.5 hours?) for upcoming virtual OpenJS World summit and then decide from there.
  • Plan Retrospective section and initial Looking forward session for upcoming virtual OpenJS World summit (maybe 3 hours ?) and then decide from there.
  • Plan Retrospective section and initial Looking forward session for upcoming virtual OpenJS World summit (maybe 3 hours ?) and then plan for 2 hour session every other week to continue working.

There are many more variations, but this gives some concrete options.

My first choice would be to try to make it more concentrated, but since it seems like now is not necessarily a good time for that I might suggest this one ?

  • Plan Retrospective section and initial Looking forward session for upcoming virtual OpenJS World summit (maybe 3 hours ?) and then plan for 2 hour session every other week to continue working.

@mmarchini
Copy link
Contributor

  • Plan Retrospective section and initial Looking forward session for upcoming virtual OpenJS World summit (maybe 3 hours ?) and then decide from there.
  • Plan Retrospective section and initial Looking forward session for upcoming virtual OpenJS World summit (maybe 3 hours ?) and then plan for 2 hour session every other week to continue working.

I like these two.

@mhdawson
Copy link
Member Author

mhdawson commented May 8, 2020

Issue to propose summit topic at OpenJS World: openjs-foundation/summit#279

@mhdawson
Copy link
Member Author

mhdawson commented Oct 8, 2020

Next-10 effort is up and running - see https://github.com/nodejs/next-10. I think we can close this.

@mhdawson mhdawson closed this as completed Oct 8, 2020
@tniessen

This comment was marked as off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants