This monorepo uses NX. You
can install nx globally but we suggest you always use npx nx
from inside the project. That ensures you're
using our NX version.
To test, build, or run any of its projects, run nx test|build|lint {project}
where project
can be:
components
i18n
ng-live-docs
route-analyzer
The examples application is deployed using GitHub Actions. Visit our examples site for live examples with source code that you can edit/run on stackblitz.
To serve the examples applications, run nx serve
, making sure you have run npm ci
after fetching latest.
Reusable components for vcd-ui and its plugin developers. See its README for further details.
Translation code for vcd-ui and its plugin developers. See its README for further details.
Enables Angular based UI component libraries to embed editable code snippets in their application. It was created since storybook didn't support Angular when this was created.
See https://vmware.github.io/vmware-cloud-director-ui-components/dataExporter for an example and its README for further details.
Route Analyzer statically analyzes angular source code and generates a json file with all the available routes, including the ones from lazy loaded modules. See its README for further details.
The component library depends on Clarity, Clarity Core and
Angular which must be installed from your application's package.json
.
See package.json for version information.
To generate a new component, service or directive, run nx g component|service|direct --project=components
.
Run nx test {project}
. If you want to debug karma unit tests, you can pass --watch=true --browsers=Chrome
. Notice
that route analyzer uses jest. IntelliJ and
VS Code both have tools to debug node applications
from its IDE.
Run npm run e2e
to execute the end-to-end tests with Cypress
We typically use git clone https://github.com/vmware/vmware-cloud-director-ui-components ./vcd-ui-common
to avoid
the extremely long folder name.
For all official releases, versioning should be semantic as per NPM's documentation.
For all development, nightly builds, the version should be created using npm version prerelease --preid=dev
.
See ci-cd.yml
We recommend that a separate PR be created when publishing a new version of the library. To publish a new version
of @vcd/ui-components
or @vcd/route-analyzer
or @vcd/i18n
or @vmw/ng-live-docs
, you must add the following
anywhere in your commit message:
[publish lib-name]
to publish an@next
release[publish lib-name@latest]
to publish an@latest
release
Where lib-name is one of the following:
@vcd/ui-components
@vcd/route-analyzer
@vcd/i18n
@vmw/ng-live-docs
Be sure to update the corresponding package.json files:
- projects/components/package.json
- projects/i18n/package.json.
- projects/route-analyzer/package.json.
- projects/ng-live-docs/package.json.
Note that @latest
releases are only to be created when we release a version of VCD. Most releases, except for the
final release that is used by a release of VCD, should be @next
.
Be sure to always update the CHANGELOG for the project you're updating.
Merging the PR will publish the mentioned packages when it's pushed to master
To get further help, please file issues on GitHub.
To get more help on NX, use nx --help
or go check out the
NX for Angular instructions.