Currently this project in a "maintained sunsetting" mode. This means we're starting to remove deprecated/unused components from its codebase with the intent to completely remove as dependency from our products.
But don't worry, if you need to use the old project, there are a couple of "frozen in time" branches that you can use (and potentially even release from, if you need). See "Which version to use?" below.
The current version of this package is the one used for the "managed sunsetting" of the library from our products. As such, in time some components are deprecated and then removed from the repository, and some surgical patches to the code are done when necessary to facilitate the migration to the new UI library (HashiCorp Design System components).
If for any reasons you need to stay on an older version, you can:
0.6.4
to stay "frozen in time" at the moment in which the "maintained sunsetting" phase has started.1.x.x
to stay on a release path that sees only minor patches but not components removal
master-version-1.x
and release to NPM from that branchOld introduction to the project, left for reference:
Pds stands for Product Design System. The original intent was to rename
structure
to Pds because the developer at the time thought it was more clear. Unfortunately, that renaming never happened so there are two names. This is a mono repo with the idea that the Ember, React, etc projects scattered around Hashi could all eventually rely on a single source for design components. Currently there is onlypds-ember
.
To contribute to the pds-ember
package (currently the only package in this mono repo) please see the Contributing guide for details.
yarn workspace @hashicorp/pds-ember version patch
to bump the version by a "patch" increment (see Semantic Versioning)git tag [PACKAGE-NAME]-[VERSION]
e.g. git tag pds-ember-2.0.2
git push --tags
pds-ember-[VERSION]
as release titledescription
will be automatically filled by GitHub)yarn workspace @hashicorp/pds-ember npm publish
Troubleshooting: If you get authentication errors from npm publish, you might have to do a login via workspace, before calling npm publish
:
yarn workspace @hashicorp/pds-ember npm login
In this case you will need to do a two-factors authentication (2FA) on NPM before the login (via npmjs website)package.json
to use the new version of the structure package. If it's in another mono repo with multiple packages, replace the version in each package to the new version (find/replace).The current version of this package is the one used for the "managed sunsetting" of the library from our products. As such, in time some components are deprecated and then removed from the repository, and some surgical patches to the code are done when necessary to facilitate the migration to the new UI library (HashiCorp Design System components).
If for any reasons you need to stay on an older version, you can:
0.6.4
to stay "frozen in time" at the moment in which the "maintained sunsetting" phase has started.1.x.x
to stay on a release path that sees only minor patches but not components removal
master-version-1.x
and release to NPM from that branchTo remove a component (eg. Pds::Xyz
) from the Structure repository the steps to follow are more or less these.
<Pds::Xyz
in the Cloud UI codebase (you should expect zero occurrencies)Pds::Xyz
code and logic directly where it's consumed in Cloud UI and remove the component from Structure<Pds::Xyz
in the Structure codebase (you should expect zero occurrencies as well)
Pds::Xyz
code and logic directly where it's consumed in Structure and don't expose it as componentPds::Xyz
component, once you have decided it's OK to remove the component:
Pds::Xyz
component as you would normally do in your IDE/editorpackages/pds-ember/addon/components/pds/xyz
packages/pds-ember/app/components/pds/xyz
packages/pds-ember/app/styles/pds/components/xyz
packages/pds-ember/app/styles/pds/components/index.scss
xyz
via @use
, in which case copy the definitions where they're used or abstract them somewherepackages/pds-ember/tests/integration/components/xyz
xyz
(case insensitive) and look what needs to be done for every remaining occurrence (it will depend case by case)packages/pds-ember/docs/deprecated/pds-xyz.stories.mdx
explaining what to do with this component (use the files in the same folder as guidance of what to write)
yarn build-storybook
and then yarn storybook
to check that the page just created works correctly (and there are no crashes in the app because of missing components or references)main
branch (or the branch you're working on, if this work in Structure is related to it)yarn
to install all the needed dependenciescd
in node_modules/@hashicorp
pds-ember
folderln -s [path-to-your-local-structure-project-folder]/packages/pds-ember [path-to-your-local-cloud-ui-project-folder]/node_modules/@hashicorp/.
yarn
to install properly all the dependencies@hashicorp/pds-ember
dependency