Moderated By: justafish

Hello! Welcome to to our weekly JavaScript initiative meeting. It happens every Monday right here in Slack! :arrow_left::v::arrow_right:

- This meeting is chat-only. There is no video or audio component.
- We leave about 5 minutes between topics, sometimes more, so that people who are multitasking - The meeting is threaded, so please keep an eye on thread notifications (this may not pop an alert depending on your settings.)
- Please DM me if you would like any items added to today’s agenda!

1️⃣ Please introduce yourself if you’re attending today’s meeting :wave:

justafish Sally in :gb:
prestonso Preston in :flag-be: but from :flag-us:
dawehner Sally in :office:
gabesullice Hello all! :flag-us: in :flag-fr:
eojthebrave Joe :wave: stopping by to see what this is all about
markie is lurking
drpal Matt in :flag-us: :eagle:
webchick Angie in :canada:
ckrina Cristina, still landing :slightly_smiling_face:
mglaman Matt, wasn't going to lurk. Am lurking
lauriii Lauri in :flag-th:

2️⃣ We had a good chat with Wim about what we need from the API-first initiative during the cross-initiative meeting this week. The general consensus seemed to be that this will take.. a while :laughing: @dawehner made a start on the weird endpoints we need here

justafish @dawehner do you need anything here other than someone to review it?
gabesullice Is the intention to just do GETs first?
dawehner @gabesullice We do just need GET
dawehner Because POSTing doesn't make sense for permissions
gabesullice PATCH?
dawehner Permissions are defined in code
dawehner Saving which role has which permission already theoretically works on saving roles config entities
justafish @gabesullice this is just for the list of permissions available, so we can’t do anything other than GET them
justafish setting permissions themselves are entity operations so that should be covered when we get config entity support in JSON API
gabesullice ah, interesting
gabesullice so the permissions page (Save) would then fall back to a typical form submit?
mglaman The big problem being exposing plugin data over the API which isn't entity, yeah.
gabesullice gotcha
mglaman Not so much having a functional form.. but tackling the concept?
dawehner @mglaman Form my perspective, yes
mglaman I think that's the big win. Because plugins are a black hole that currently are not handled by an API. And we definitely have a lot of those in Commerce. Permissions are the simplest use case
dawehner The question is: should we expose all the plugin data
dawehner I think it is tricky because not necessarily every plugin type would have permissions assosiated
mglaman Yeah that's hard. Like state_machine so you know an order's workflow - maybe. Because maybe we have a transition endpoint and you need to describe it's workflow?
gabesullice yeah, that's a dangerous road to go down
gabesullice handling access to all that will be very difficult
mglaman If we can provide a way to expose plugins that isn't a tree for all
mglaman Ugh, mobile autocorrect. Free, not :evergreen_tree:
dawehner So we are okay having a custom rest plugin for that?
mglaman I believe so. Something that helps make it easy but not loose like a goose
mglaman I'm really trying to dig into our API and JS stuff to make commerce slick. This would fall into more full admin API. But still a fritical path
justafish @dawehner sounds good to me :+1:
justafish If someone could test/review Daniel’s patch that would be v helpful!
gabesullice I'll do a review

This message was deleted.

dawehner I think we should discuss what we focus on. Right now we have a) a special form b) config forms. Content forms would be a third bit. I'm not sure focusing on that now would be good

3️⃣ We want to publish ! Who needs to sign off on this other than myself, @drpal, and @webchick? (Initiative leads)

justafish Wim and/or Mateu?
dawehner Probably a framework maintainer
justafish Hi @lauriii :grinning:
gabesullice What's the best way to provide feedback on that doc?
dawehner I guess we want one for frontend and backend?
gabesullice here or comments?
justafish @gabesullice here is good!
gabesullice > Allow routes to be seamlessly passed back and forth between React and Drupal
I think is a bit too ambiguous. It's a high-level goal, but I think it has the potential to seem like we're trying to recreate FAPI on the frontend
gabesullice and have them share a common API
justafish @gabesullice so what we mean there is we want to fall back to Seven for pages we haven’t built yet
justafish so it will literally switch back to Drupal
justafish so Drupal and the new app will each need to be aware of which one of them should be handling which routes
lauriii I assume we should have feedback from a release manager as well?
webchick Well, this will be run past all core committers once it passes internal team muster
dawehner @lauriii Mh, even we don't provide something releasable yet?
gabesullice Is the idea there that something is taking over routing at the window-level then (forgive me, I have so little history here) rather than components built into a page generated by drupal?
webchick I just figure there’s no point in showing core committers something that the team itself doesn’t have agreement on. :slightly_smiling_face:
justafish @gabesullice yes
justafish just a normal React app
justafish no progressive decoupling/drupalisms :grinning:
gabesullice nice
gabesullice So then core admin would just load a react app by default, with "pass-through"
justafish correct
gabesullice :+1:
justafish @drpal has been looking at this piece (I think - correct me if I’m wrong!)
drpal @justafish I will be looking at that part this week.
drpal So yes.
justafish :partyparrot:
justafish ok so let’s clarify that section of the document
gabesullice Perhaps a rephrasing to:
> Allow routes not handled by React to pass through to Drupal's rendering system
gabesullice would have cleared up my initial misunderstanding
mglaman I have a side topic and Q about admin, which is probably best to save for after this - correct?
drpal @gabesullice I like that wording.
drpal @mglaman DM myself or @justafish and we’ll add it to the list.

4️⃣ Some members of the API First initiative have suggested that instead of pursuing the permissions page, we do something which involves content entities. @gabesullice recommended admin/people

dawehner What makes admin/people better suited than admin/people/permissions?
mglaman Wouldn't user management be kind of difficult and force supporting bulk user operation?
gabesullice The current roadmap targets 8.6 and JSON API is targeted for 8.6 as well. My concern is that by targeting permissions/config, we're not working "with the grain" of what API-first has been focused on.

By focusing on /admin/people, we get a page which will have mostly native support in JSON API/REST

lauriii I would guess it is something we are more familiar with since those are the resources we exposed first
gabesullice it's not highly overridden by most modules
gabesullice and it has the potential to show off neat features
gabesullice like live filtering by name/email
gabesullice or infinite scroll when bulk blocking spam users
justafish @ckrina would be good to get your thoughts here too
ckrina I like the idea of showcasing this features
dawehner When we discussed it last time we want with the permission page, because it has a horrible UX right now, so fixing that was an easy win.
ckrina And actually redesigning permissions page is totally independent to other design components, but this one would let us reuse elements
gabesullice @mglaman
> Wouldn't user management be kind of difficult and force supporting bulk user operation?
can you elaborate on this concern?
justafish The permissions page is a much smaller set of features to implement from a front-end perspective imo
gabesullice Are you talking about the VBO usecase?
ckrina also, permissions is independent and is an easy win... but not an easy design :slightly_smiling_face: And I'm afraid it might slow the development part
dawehner @justafish Is that a +1 or a -1 for the permission page?
justafish @dawehner I’m still thinking about it, I’m just installing a fresh D8 so I can look :wink:
mglaman @gabesullice my concern is bloat of scope. Requires a lot of additional work
prestonso From a purely user's perspective, I would be -1 for the permissions page, solely because that's one of those one-and-done pages that Drupal users don't touch often
prestonso In terms of impressiveness/optics/profit
justafish haha that was one of the reasons we chose it - it’s very limited in scope
prestonso @justafish right there with you — I agree starting small is the right move
gabesullice @mglaman I'm assuming extra work in the react UI side of things? not the backend?
ckrina So, what is exactly the goal? Limited scope?
dawehner For me working on permissions will allow us to learn which infrastructure bits we need for any page
dawehner When we work on admin/people we don't need those anymore and can focus on the API side of things instead of also focusing on the react infrastructure
gabesullice To be clear, I think these are both excellent proposals.

My reading is that the purpose of "Reactifying" a page isn't really known right now.

gabesullice I.e. is it about glitz and glam
gabesullice or is it about discovering missing features
gabesullice or is it about the smallest MVP
dawehner Maybe it is more about time spent and see how much can be implemented (I'd love to see a permission live filter)
justafish for me, the smallest MVP because we have lots of hard problems to solve before we can get into the bit of just writing React components/pages
webchick I think for now, it’s the “simplest thing that can possibly work” to discover holes in the implementation.
webchick And then as a longer-term goal, a “glitz and glam” on a particularly painful admin experience, such as Field UI
justafish +1
ckrina Maybe adding more options is not the best idea, but what about Appearance page?
dawehner @ckrina in parallel to the permissions page or as alternative?
justafish What’s the objection _against_ permissions page here? That JSON API isn’t supporting config entities properly yet?
webchick But “glitz and glam” is blocked on snazzy designs, and I’d really love to have something to show for this initiative in 8.6, even if it’s on Github and not core for now
webchick @justafish I think yeah, it’s that API-First and JS teams are working at cross-purposes
ckrina @dawehner As an alternative to an isolated option
webchick API-First is working their asses off to get content entities in good shape w/ JSON API. And JS is off the beaten path on some “not an actual API” thing (permissions) that talks to config entities (not a focus of API-First)
gabesullice It's not that JSON API doesn't support it, it's that the internal APIs that JSON API builds upon ar not there for non-content entities
justafish sorry, I’m totally confused by that @gabesullice :laughing:
justafish so it does support it?
webchick So would be a matter of how to bring alignment there, be it having API-First instead doubling down on config entities, or JS instead doubling down on content entities
gabesullice My hope is that, as @webchick is saying, we could find a place that would be both easy for JS to do and easy for API-first to support
dawehner In case someone actually wants to fix that instead of talking about it and complaining: needs help
dawehner @ckrina Do we have UX problems on that page right now JS is helpful for?
ckrina @dawehner good point. No, I don't think JS would make a huge difference there
gabesullice @justafish the gist is that it's not safe to expose config entities over an API right now. Most of their validation is baked into the Form API, which we can't hook in to
justafish @dawehner no one is complaining, we’re just trying to figure out what’s possible with our given resources/directions :slightly_smiling_face:
justafish @gabesullice gotcha
webchick Right, I’m not reading “complaining” out of this, merely how to extract the most awesomeness given constraints. :slightly_smiling_face:
dawehner @justafish yeah I just wish there would be less talking about it since 1.5 years. The time could have been invested better
dawehner Sorry for my :sass: y-ness
gabesullice so `/admin/people` was my best thought for finding overlap. Working with content entities would really show off what API-first can do well AND show off what React can do well. Other pages might do that better, or perhaps that's better for a later cycle
webchick I do agree with @dawehner though that one way or another, we need to tackle the config entity problem, and every time we kick the can down the road we only elongate the timeframe of doing something really impressive with headless.
webchick My worry with admin/people (and also admin/content) is that those are Views.
justafish I think it’s better for a later cycle
webchick And we made a big deal about how they’re Views and thus customizable by the site builder
webchick And once we React-ify it, I’m guessing UI configurability goes away, yes?
gabesullice Yes
mglaman @webchick that's my concern. Replace a view... Need to handle more expectations
dawehner @webchick Thank you for bringing up this point. I didn't dare to
justafish our goal for this phase isn’t to show off what API-first can do, our goal is architect some kind of peace treaty between Drupal and a React application :stuck_out_tongue:
gabesullice Unfortunately, all content listings will be Views by definition
dawehner And let's be honest, this was a reason why we pushed views into core in the first place.
webchick Correct.
webchick And I’m guessing we can eventually find a way to represent Views in React, but not sure that’s a good “step 1” project.
dawehner For custom content modelling adapting these UIs is helpful
justafish Ok so…
dawehner @webchick yeah its another potential auto-generation level complexity
webchick Yep.
justafish On this message, please add a thumbs up for sticking with permissions as per our roadmap, or a thumbs down if you think we should do something else
justafish (just to gauge where we’re all at atm :slightly_smiling_face: )
webchick me is not voting because there’s no “sideways thumb” emoji :smile: I don’t have a preference, I’m just trying to ensure all concerns are represented
justafish haha
justafish @webchick gotta make a decision! :wink:
dawehner @webchick You could use "shrug"
lauriii thumbdown only because of I’m concerned how long implementing that will take from us, and whether we should be able to ship something visible earlier
webchick And if we stick with permissions page (which looks like we are, and that’s fine), how do we address @ckrina’s concerns that this is not a “low hanging fruit” design-wise?
justafish @lauriii us === api-first initiative?
lauriii us, api-first + JS modernization
justafish I think the nice (?) think about the permissions page is that it’s so simple we’re not going to burn a bunch of energy re-creating that part in React
justafish so for me it’s ok if the first iteration of this isn’t much different
dawehner It is certainly not wasted effort
lauriii I agree that the effort put into that is valuable
dawehner So let's get action items out
dawehner a) Make a product level issue: Replacing admin/people with a JS page. Are we okay with skipping views?
lauriii I’m just wondering if the JS team should be focusing on another UI to be Reactified until the required API’s for the permissions page have been sorted out
ckrina That sounds like a good backup plan @justafish
justafish @lauriii we can build with fake data for now
justafish The focus here is seeing if we can get the inter-operability with Drupal and a React app
dawehner yeah the API side of things is not the main "problem" of this page, which is nice in some way.
justafish it’s a simple page that uses read and write
lauriii @justafish fair enough, that allows us to do development, but not necessarily to release something
justafish @lauriii we’re not planning on releasing anything into core
justafish these are just some goal dates
justafish that should be clearer on the document
lauriii good point, but I think release could be also targeted for the developer community as it is in this case
gabesullice I did not realize that
justafish the things we commit into core will be all the API work etc
justafish but not planning on putting the theme in as an experimental module
justafish well maybe something for 8.7, depending on how it’s going :laughing:
justafish but we need to figure out how to package it all up etc
justafish since Drupal doesn’t have a build step
justafish so, lots of problems to solve before we get to that part
dawehner It'd be nice to pull it in as composer/npm dependency for testing things out though
justafish yeah, for sure
justafish but I think that’ll be a case of “wanna try out to the new stuff? composer require vfancy”
justafish or something
justafish _waves arms around vaguely _
lauriii I think it is fair to assume developers to do something like that
lauriii is there particular reason not to use the extensions we have (themes and modules) for this purpose?
dawehner I could easily imagine we need some work on the PHP side of things, so we night need a theme and a module actually.
justafish maybe a module, not sure sure we need a theme
justafish @lauriii it’s a standalone React app, it just doesn’t need it
justafish but maybe we we package everything up it’ll have to do something like that?
justafish my biggest goal is to have something very familiar to JS/React developers
dawehner For me though this is an implementation detail, which we might not be able to plan for now.
justafish agreed
lauriii yeah, we have multiple options to choose from when it’s time for that
justafish ok going to update the doc now with feedback from here, gimme a few ticks
justafish I’ll add a notes column because I can’t User Story :wink:
justafish ok, did I miss anything? Does that clarify things better?
ckrina ok, so the Permissions page will be the first design needed, not the field UI right?
justafish yeah that’d be good
justafish but we can also go ahead without a new design, so don’t feel like it would block us :slightly_smiling_face:
ckrina great, this is important too :slightly_smiling_face:
ckrina Maybe something like wireframes that can be implemented with other designs would be useful?
justafish @ckrina yeah that’d work!

5️⃣ We have 5 minutes or so left, any other items?

dawehner Are we confident with converting the nightwatch work into a patch on at this current state?
justafish there’s still a couple of open PRs
justafish I’ll address the feedback you left on mine later and get that in
justafish Someone needs to review Alex’s lock PR
justafish but then, yes, I’m happy for it to be a patch :slightly_smiling_face:
dawehner I reviewed the d.o. issue
dawehner I'd like to move modules out of scope for now
justafish has been moved to a d.o issue?
justafish @dawehner I really want us to have module support
justafish it’s a small addition for a big win
justafish plus then we can see how other people who aren’t core developers might use it
justafish i.e. more than 4 people :wink:
dawehner needs updates from the issue
justafish is this the issue?
dawehner @justafish it is
justafish sorry,
justafish jinx
justafish ok so if this is going in as a separate issue then we need that committed first
dawehner Yes we should. This doesn't block anyone from reviewing our main nightwatch issue though, as long we document it properly in the issue summary.
justafish ok so should I remove the install script from the patch or post them together?
dawehner Well, one could create two patches. One for review, one for sending it to the testbot
dawehner Or we wait till the other patch is done.
justafish @dawehner is it close?
dawehner I'd say so
dawehner I just made some review and changed a couple of them
justafish ok, let’s wait and come back to this next meeting if it’s still not done :slightly_smiling_face:

Comments

justafish created an issue. See original summary.

justafish credited ckrina.

justafish credited drpal.

justafish credited lauriii.

justafish credited mglaman.

justafish’s picture

Status: Active » Fixed
justafish’s picture

Title: Weekly Meeting - 2018/02/26 » [Weekly Meeting] 2018/02/26

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

justafish’s picture

Title: [Weekly Meeting] 2018/02/26 » [Admin UI & JavaScript Modernisation Initiative Weekly Meeting] 2018/02/26
Project: Drupal core - JavaScript Modernization Initiative » Drupal core
Version: » 9.x-dev
Component: Meetings » meetings

Version: 9.x-dev » 9.0.x-dev

The 9.0.x branch will open for development soon, and the placeholder 9.x branch should no longer be used. Only issues that require a new major version should be filed against 9.0.x (for example, removing deprecated code or updating dependency major versions). New developments and disruptive changes that are allowed in a minor version should be filed against 8.9.x, and significant new features will be moved to 9.1.x at committer discretion. For more information see the Allowed changes during the Drupal 8 and 9 release cycles and the Drupal 9.0.0 release plan.