This project is an Angular library monorepo containing multiple packages for the DIUCSE Alumni platform.
This monorepo contains the following packages:
@diucsealumni/core
- Core utilities and functionalities@diucsealumni/models
- Data models and interfaces@diucsealumni/services
- Services and API integrations@diucsealumni/utils
- Utility functions and helpers
To start a local development server, run:
ng serve
Once the server is running, open your browser and navigate to http://localhost:4200/
. The application will automatically reload whenever you modify any of the source files.
To build all packages:
npm run build:all
To build a specific package:
ng build @diucsealumni/core
ng build @diucsealumni/models
ng build @diucsealumni/services
ng build @diucsealumni/utils
This project uses semantic-release for automated versioning and publishing. The release process is triggered automatically when commits are pushed to the main
branch.
The configuration has been updated to resolve common issues:
- ✅ Removed problematic
semantic-release-monorepo
dependency - ✅ Fixed GitHub Actions permissions
- ✅ Added scope-based release rules for individual packages
- ✅ Added change detection to only release packages that have changes
This project follows the Conventional Commits specification. Important: You must include the package scope for changes to be released:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
feat(core): description
- Releases @diucsealumni/corefix(models): description
- Releases @diucsealumni/modelsfeat(services): description
- Releases @diucsealumni/servicesperf(utils): description
- Releases @diucsealumni/utils
feat
: A new feature (triggers a minor release)fix
: A bug fix (triggers a patch release)docs
: Documentation only changes (no release)style
: Changes that do not affect the meaning of the code (no release)refactor
: A code change that neither fixes a bug nor adds a feature (no release)perf
: A code change that improves performance (triggers a patch release)test
: Adding missing tests or correcting existing tests (no release)chore
: Changes to the build process or auxiliary tools (no release)
To trigger a major release, include BREAKING CHANGE:
in the footer or add !
after the type:
feat(core)!: remove deprecated API
Test individual package configurations:
# Test core package
./scripts/test-release.sh core
# Test models package
./scripts/test-release.sh models
# Test services package
./scripts/test-release.sh services
# Test utils package
./scripts/test-release.sh utils
To manually trigger releases (requires proper Git setup and NPM token):
# Release only packages with changes
npm run release:all
# Force release all packages
./scripts/release-all.sh --force
To execute unit tests with the Karma test runner, use the following command:
ng test
- Clone the repository
- Install dependencies:
npm install
- Build all packages:
npm run build:all
-
Set up the following secrets in your GitHub repository:
NPM_TOKEN
: Your NPM authentication token for publishing packagesGITHUB_TOKEN
: Automatically provided by GitHub Actions
-
Ensure your repository URL is correctly set in each package's
package.json
file -
Make sure the
main
branch is protected and requires pull request reviews
For more information on using the Angular CLI, including detailed command references, visit the Angular CLI Overview and Command Reference page.