AuroKit install and support improvements #586
blackfalcon
started this conversation in
Improved tech suggestion
Replies: 1 comment
-
A POC to support this proposal can be seen here https://github.com/AlaskaAirlines/AuroKit/tree/dsande/generalImprovements |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
AuroKit Proposal
The Auro design system, composed of multiple npm packages, has posed challenges for developers due to the complexity of installation and version management. To streamline this process, AuroKit is proposed as an all-in-one npm package that consolidates essential Auro packages at pre-validated versions, ensuring compatibility and reducing development friction.
AuroKit aims to simplify the installation process, provides version stability, and allows for easier updates through
npm update
for patch updates automatically. It is recommended that AuroKit will be updated quarterly for new features and annually for major releases, aligning with Node.js version support to maintain modern compatibility.By introducing AuroKit, developers can expect a more efficient, reliable development workflow, enhancing productivity and reducing potential integration issues. This strategic approach addresses feedback from developers, improves package management, and supports the long-term sustainability of the Auro ecosystem.
Problem Statement
The Auro design system consists of multiple npm packages that are each maintained at different versions. Developers have expressed that installing and managing these individual packages is complex and prone to version compatibility issues. This results in increased setup time and potential version conflicts that hinder development and integration.
Recommendation
To address these challenges, it is recommended to create AuroKit, a comprehensive npm package that aggregates all Auro design system packages. This solution will:
npm install aurokit
), ensuring a consistent and reliable development environment.Advantages of AuroKit
aurokit
) rather than managing multiple individual dependencies.npm update
to apply minor and patch updates automatically, leveraging npm's built-in behavior to update packages based on their semver ranges.Expectations
npm update
, will require validation that they conform to minor or patch release standards.npm update
automatically updates the minor and patch versions of packages as specified in thepackage.json
dependencies' range.Support
Manage patch updates
Consumers of AuroKit, when performing
npm update
actions should be restricted to PATCH updates. This will reduce the number of localized errors due to potential incompatibility issues with MINOR release updates.To restrict consumers to only PATCH updates, replace the caret
^
with a tilde~
for each dependency.Direct dependency management
In a few cases there are direct dependencies defined within the scope of the component. There needs to be a review of this process to ensure that the proper versions are being defined and if this needs to be a direct dependency or should reside as a peer dependency.
It should be noted that defined peer dependencies are installed with the package automatically. It could be argued that unless there is a restriction on versions within the scope of a component, using peer dependencies will ensure that all components are relying on the same version of the dependency.
Peer dependency management
An issue when installing all Auro components in a single command is conflicts with peer dependencies. A common
npm error
devs will see is;It will be important to maintain peer dependency consistency across all Auro repos. One way to manage this is with the following BASH script. This series of functions will loop through a list of local directories, locate the
./package.json
file and update/design-tokens
and/webcorestylesheets
dependencies. These are found to be the most common peer dependencies across all repos.Conclusion
AuroKit represents a significant improvement in the usability, maintenance, and scalability of the Auro design system. By streamlining the process of dependency management and aligning releases with predictable cycles, AuroKit will enhance developer experience and maintain version stability across projects.
Beta Was this translation helpful? Give feedback.
All reactions