DoneJS Contributors Meeting – 2017-04-14

Please add topics for discussion (and your status if you’re a contributor).


Would like to discuss:

Christopher and I have some ideas on how to tackle this across all CanJS/DoneJS/StealJS/etc repos.

For this meeting, though, we’d like to focus on discussing configuration. We need two configurations:

  • Config for OS projects (used by contributors). More important.
  • Config implemented by DoneJS generator (used by consumers). Less important.

Some quick information on what we have discovered so far:

  • Most lint rules are based on the jQuery config
  • Most lint violations can be auto-fixed
  • We’ll be creating a repository to contain the configs (much like the Airbnb repo for lint rules)

Would appreciate any feedback on the issue!

1 Like

I think the biggest challenge will be getting the popular repos into a state where we feel comfortable with sweeping changes to not only whitespace but also the code, because that will create conflicts with most branches and open PRs.

Since linting is up for discussion, I’d also like to throw in Fixpack. It’s not for code, but does do a lot of good for package.json’s. I use it in all my own projects. It keeps everything consistently named and ordered (which also keeps the diff change size to a minimum).

I used sort-package-json (installed into global npm) and ran into a issue where the JSON in package.json needed to be in a specific (non-alphabetical) order for bit-docs plugins to work properly.

That issue is documented here:

Hopefully that limitation can be resolved within bit-docs, because it is cumbersome to require a specific order, but just something to keep in mind for now (most of the project websites use both of those plugins, I think).

Last week

  • Issues from DoneJS 1.0 testers.
  • donejs-next site updates.
  • created the steal-tools 1.3.x epic.

Next week

  • Speccing out the minimal production loader here.
  • Helping with DoneJS 1.0 article.
  • Maybe getting back to donejs’ streaming capabilities.

This week

  • fixing relative url( ... )s in less files and Server Side Rendering
  • fixing memory leak in can-connect instanceStore and live attributes

Next week

  • DoneJS 1.0 release article
  • preparing for Preparing for the Future of JavaScript meetup talk


This week:

Still have hard/unsolved bit-docs issues re: sidebar nav menu and @signature breaking page render.

Next week:

  • bit-docs


  • What’s next for Steal!

Last week:

Next week:

  • [Today] Publish an article about can-ajax
  • Write an article for SitePoint
  • FInish the DoneJS 1 release article
  • Maybe publish a migration guide blog post too
  • More conference & meetup organizing

This Week:

Next Week:

DoneJS 1.0

  • Get faster can-reflect working everywhere.

Topic: Testee Code Coverage with ES6

Related to discussion linting; tabs in markdown:

Attendees: @chasen @chrisbitme @justinbmeyer @leoj3n @Macrofig @matthewp @Nils @obaid @phillipskevin Christopher Baker

Discussed topics:

Commit to lint rules, implement and fix any linting issues and JavaScript Linters:

  • Goal: make it easier to contribute by having a linter in all our projects
  • We have included JSHint in our new projects because that’s what ships with DoneJS
  • Switching to ESLint because of its plugin architecture; not switching to Prettier because it doesn’t support more advanced configuration
  • Gameplan:
    • Juan & Christopher will work on creating donejs-eslint (similar to donejs-jshint)
    • We’ll use jQuery’s conventions for now because that’s what we have in CanJS’s contribution guide; if it’s not strict enough, we can deal with that later
    • New projects will start off with ESLint
    • Juan and Christopher can help get code merged in before the rules are applied to existing projects

Embed generator information in the generated website:

  • Nice to have, but not a priority right now

What’s next for StealJS:

  • Matthew’s roadmap presentation
  • Overall summary:
    • Through steal and steal-tools, StealJS supports core features to DoneJS’s maintainability and performance mission
    • Crossroads: features that make development easier can hurt production performance
    • The minimal production loader RFC is the start of development & production diverging
  • How can we manage the complexity of having different feature sets across development & production?
    • As they diverge, more potential bugs
    • Maybe there’s a way that the minimal production loader can share code with or become SystemJS within StealJS

Testee Code Coverage with ES6: