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

component status alignment #2026

Open
agliga opened this issue Nov 16, 2023 · 2 comments
Open

component status alignment #2026

agliga opened this issue Nov 16, 2023 · 2 comments
Assignees
Milestone

Comments

@agliga
Copy link
Contributor

agliga commented Nov 16, 2023

Introduce additional metadata in the ds-versions.json file to help us programmatically link ebayui-core component to the Design System components/patterns they implement.

Proposed changes to DS versions JSON

Instead of a 1:1 mapping of ebayui-core component name to version, map ebayui-core component name to an object containing multiple pieces of metadata about its design system relationship:

property type required? description example
name string yes canonical name for this component in the eBay Design System (see internal reference doc) "video"
version string | number strongly encouraged version # of the DS component spec implemented "2.4.0"
status string no additional status info when applicable, e.g. as "alpha", "beta", "deprecated" "beta"

If a component maps to multiple Design System components, map it to an array of metadata.

For example:

{
  "textbox": [
     { "name": "text-field", "version": "1.4" },
     { "name": "text-area", "version": "1.5" }
  ],
  "video": {
     "name": "video",
     "version": "2.4.0",
     "status": "beta"
  }
}

Proposed changes to DS versions script

This script pulls component-specific metadata from the ds-versions.json file and prepends it to the component's readme.

  • Update script to support the refactored structure of the JSON file (as documented above)
  • Add a step to the script that dynamically adds a link in the component's readme that navigates to the playbook.ebay.com design system documentation for that component

Proposed process changes

  • Before each release, ensure that the metadata in ds-versions.json is up-to-date
@agliga agliga added this to eBayUI Nov 16, 2023
@agliga agliga added this to the 13.2.0 milestone Jan 25, 2024
@agliga agliga moved this to In Progress in eBayUI Jan 25, 2024
@agliga agliga moved this from In Progress to Pull request in eBayUI Jan 31, 2024
@agliga agliga moved this from Pull request to In Progress in eBayUI Jan 31, 2024
@ArtBlue ArtBlue modified the milestones: 13.2.0, 13.3.0 Feb 16, 2024
@agliga agliga modified the milestones: 13.3.0, 13.4.0 Mar 19, 2024
@agliga agliga modified the milestones: 13.4.0, 13.5.0 Apr 16, 2024
@agliga agliga modified the milestones: 13.5.0, 14.0.0 May 15, 2024
@ArtBlue ArtBlue modified the milestones: 14.0.0, 14.1.0 Jun 27, 2024
@agliga agliga modified the milestones: 14.1.0, 14.3.0 Aug 13, 2024
@agliga agliga modified the milestones: 14.3.0, 14.4.0 Sep 20, 2024
@agliga agliga modified the milestones: 14.4.0, 14.5.0 Oct 25, 2024
@cordeliadillon
Copy link
Contributor

@agliga, I updated the issue description with the approach we discussed earlier today. I'll work on changes to the JSON file and put up the PR. I'll also get you the appropriate playbook URL prefix to add to the script, and then you can start on script updates. Looking forward to working with you on this! Excited that the Playbook page and readmes will dynamically link to each other.

@HenriqueLimas
Copy link
Member

@agliga @cordeliadillon, shouldn't the skin module be the primary entry point for determining the version of the Design System (DS) being used? The script should verify the existence of a component rather than checking which DS version is implemented, as the version is already specified by the skin module (see example).

My point is that the JavaScript libraries (ebayui-core and ui-core-react) shouldn't need to maintain a JSON file with DS version links, as this information is already managed by the skin module. The skin module defines the DS version, while the JS libraries handle behavior, not styling.

I understand that there may be cases where variants are missing or not fully compatible with the DS version implemented by the skin. However, maintaining these JSON files over time is a significant burden and may not always be accurate. Additionally, these JSON files can become outdated or incorrect.

@ArtBlue ArtBlue modified the milestones: 14.5.0, 14.6.0 Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

4 participants