Frontier, Bringing a new frontier to software engineering.
Frontier brings together engineering standards across disciplines for ease of use, promoting consistent software development.
Contributions are welcome! You can help us by reporting or fixing bugs and giving us feedback on new/existing features.
Frontier offers a set of standard libraries and typing kits that can be use across engineering projects to allow for more consistency software development. With frontier, a set of plugins are available for use by developers which can be used to easily generate base project files contributing to a faster development process.
When using the frontier cli tool it is prefered that when runing commands yarn is used over npm. When npm is used some frontier's mono repositoy features may not work as they should therefore yarn is needed. Using yarn also allows for parallel installation of the frontier tool to take place.
Bootstraping allows for the linking of different frontier packages so they can import and utilize each other without having to be published. To bootstrap all frontier packages and their dependencies run the command:
npm run bootstrap
or
yarn run bootstrap
Type checking, see the validation of the type of very variable in the code base. To type check all frontier packages and their dependencies run the command:
npm run typecheck
or
yarn run typecheck
| Name | Package | Status | More Information |
|---|---|---|---|
| Backend | @rdfrontier/plugin-backend |
Pre-Technical Proposal | Read More |
| Spring Boot | @rdfrontier/plugin-java |
Pre-Technical Proposal | Read More |
| Javascript | @rdfrontier/plugin-js |
Pre-Technical Proposal | Read More |
| .Net | @rdfrontier/plugin-dotnet |
Pre-Technical Proposal | Read More |
| Frontend | @rdfrontier/plugin-frontend |
Pre-Technical Proposal | Read More |
| Vue | @rdfrontier/plugin-vue |
Ready | Read More |
| React | @rdfrontier/plugin-react |
Pre-Technical Proposal | Read More |
| QA | @rdfrontier/plugin-qa |
Ready | Read More |
| Mobile | @rdfrontier/plugin-mobile |
Pre-Technical Proposal | Read More |
| React Native | @rdfrontier/plugin-react-native |
Technical Proposal | Read More |
| Infrastructure | @rdfrontier/plugin-iac |
Pre-Technical Proposal | Read More |
| Name | Package | Status | More Information |
|---|---|---|---|
| Frontier Standard Library | @rdfrontier/stdlib |
Ready | Read More |
| Frontier TypeKit | @rdfrontier/typekit |
Ready | Read More |
The build command rebuilds all packages and notify the user of the success of the packages being rebuilt. To build the packages of frontier, run the command:
yarn run buildor
npm run build
Rebuilding the frontier packages automatically reconstructs the packages forgetting about any previous compliation of them. To rebuild the frontier packages, run the command:
yarn run rebuildor
npm run rebuild
Testing any piece of software created is critical for developers. Frontier uses the jest configuration for testing the packages in its monorepository.
Testing Monorepo with Jest
To test all frontier packages from the root level run the command:
npm run test
or
yarn run test
To test all frontier packages from the package level run the command:
npm run test:packages
or
yarn run test:packages
Test converage is a measure of the amount of testing preformed by a test suite. To get a test coverage report of Frontier packages run the command:
npm run test:packages:ci
or
yarn run test:packages:ci
Nuking strips the source code of all distribuatble code previously built.
To nuke the packages of frontier, run the command:
yarn run nukeor
npm run nuke
To nuke artifacts of the frontier packages, run the command:
yarn run nuke:artifactsor
npm run nuke:artifacts
To support the creation of new frointer-based projects a template, Adam, has been provided to allow for easier development. This template provides the basic structure needed to develop a simple frontier-based project.
All code contributions made to this repository be properly tested. For testing the testing framework Jest is used. All test files must be writen with the extension ".spec.ts", to maintain the consistency of this project.
All commits maded to this repository be rewritten according to the Conventional Commit Messages Standard. This is to ensure that consistency is maintained throughout the repository.
When creating a pull request ensure that the request is well documented and the changes made to the repository have been properly noted. Ensure to link the issue number/s that the pull request satisfies.