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

Elements Single Release #840

Open
23 tasks
alexkilgour opened this issue Oct 31, 2022 · 9 comments
Open
23 tasks

Elements Single Release #840

alexkilgour opened this issue Oct 31, 2022 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@alexkilgour
Copy link
Collaborator

alexkilgour commented Oct 31, 2022

What

Update Elements from publishing each component as a separate package to publishing the whole library together.

Why

Now that Elements is more mature this model of working simplifies many things about the design system and allows a much easier way of standardising across products.

Done when

  • Remove any old/unused components
    • e.g. global-grid
  • Update frontend-package-manager
  • Stable design tokens
    • Context only for now
  • Allow interdependency on components, any areas for consolidation
    • e.g create global-buttons
    • any other cases where we have duplication?
  • Bundle in any major breaking changes to brand-context
  • Update all components to work with the latest brand-context
  • Provide compiled assets in components (@alexkilgour working on atm)
  • Review open issues in this repository
  • Incorporate documentation into the toolkits repo
    • Make sure it is up to date
  • Utility classes
  • Update playbook to reflect any changes to approach
  • Switch from Travis to Github Actions
  • Implement a component "playground" within the repo
  • Darwin considerations: How do they impact this work? Do we need any special consideration for widgets?
  • Complete technical documentation

Anything else

The above list is currently a work in progress to be discussed. There may be more.

@alexkilgour alexkilgour added the enhancement New feature or request label Oct 31, 2022
@alexkilgour
Copy link
Collaborator Author

alexkilgour commented Oct 31, 2022

  • Will probably need to "lock" the repo at some point to carry this out which means no updates to components
  • May have to maintain older versioned components for a period until everyone is updated
  • Some of these changes can be made ahead of time (before locking the repo)

@sturobson
Copy link
Contributor

a few thoughts:

Github's Design System (Primer) was originally a single release. In ~2017 it went to a monorepo. In 2019 it started moving back to single release. Today it looks like it's slightly split. They have separate repos for: Tokens, CSS, and Components (in various languages). This is visualised in a diagram in their Design Tokens repo. I mention this as Sid (author of the blogpost listed) works at Github now.

This is similar to how Wikipedia do it also. They have a looser monorepo making use of noms workspaces.

Both of these examples have their own separate GH organisation to keep everything in (nice and tidy).

Wikimedia go one step further and include their documentation site. I think that's a good thing. I think it would be good for the existing toolkits to have a better tie to elements.

Thoughts on an "Elements" org? Something like:

elements-themes (brand-context)
elements-tokens (design tokens, currently inside of context)
elements-components (toolkits)
elements-docs (ux-elements-docs, elements-design-system, others)

(I've split out tokens separately as they will hopefully be informing the docs site, and have the potential to work with Figma (if digital design move to Figma) or Sketch (if Sketch opens up their API a little more).

@sturobson
Copy link
Contributor

at some point should this be an front-end open space ticket to be discussed?

@alexkilgour
Copy link
Collaborator Author

at some point should this be an front-end open space ticket to be discussed?

Yep, it should be. A number of people are aware this is the overall plan and I don't think we will find opposition to the idea, but would be good to discuss once we have an idea of what needs to be done and what it will look like

@alexkilgour
Copy link
Collaborator Author

alexkilgour commented Oct 31, 2022

Thoughts on an "Elements" org?

This would simplify things from our perspective, but given how SN is managed on github I'm not sure we will be able to do this. Worth having the conversation though

@sturobson
Copy link
Contributor

given how SN is managed on github I'm not sure we will be able to do this.

perhaps something similar to how Wikimedia handle it?

github.com/springernature/elements/
github.com/springernature/elements/elements-themes
github.com/springernature/elements/elements-tokens
github.com/springernature/elements/elements-components
github.com/springernature/elements/docs

@sturobson
Copy link
Contributor

With a move to a single release, or set of releases I think we should look at the contribution model and move towards a roadmap of work.

@sturobson
Copy link
Contributor

another benefit would be a smoother transition to @use and @forward in Sass (as @import is still set for deprecation)

@amyhupe amyhupe assigned sturobson and unassigned Heydon, alexkilgour and sturobson Dec 5, 2022
@amyhupe
Copy link
Contributor

amyhupe commented Dec 5, 2022

Reviewed this in planning today - have assigned @sturobson as the owner so that we have one person responsible for tracking and updating this issue.

Stu - can you review the tasks on here and check they're all part of this. For tasks which aren't, but still need to be done, can you create separate issues for them and remove them from the checklist above?

@sturobson sturobson added stale this issue is more than 30 days old and removed stale this issue is more than 30 days old labels Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants