diff --git a/.changes/4.0.0-rc.1.md b/.changes/4.0.0-rc.1.md new file mode 100644 index 0000000..d84c8b1 --- /dev/null +++ b/.changes/4.0.0-rc.1.md @@ -0,0 +1,42 @@ + +## 4.0.0-rc.1 - 2024-09-04 + +**Road to stable version 4.0** + +After almost one year since the latest 3.5.1 release, we’re getting closer to BOX Manifest 4.0 ! + +This new major version is based on Pipeline Pattern implemented with excellent package + +Read this good article , +if you are unconfortable with this design pattern. + +An effort was made to write a better and enhanced documentation. Read it carefully at + +All features are already included into this first release candidate. +So, if you want to improve this package before final stable version 4.0, please carefully test this version and report any issues found in the [bug reporting system](https://github.com/llaville/box-manifest/issues). + +### Added + +- Shortcut `-b` for `--bootstrap` option +- Shortcut `-r` for `--resource` option +- New `make` command (to replace legacy commands) +- New `inspect` command to show PHAR manifest list and details +- Install `bamarni/composer-bin-plugin` to handle dev tools without conflicts +- Introduces new ManifestFactory methods: `toSbomJson` and `toSbomXml` + +### Changed + +- Removed usage of deprecated `Fidry/Console` elements +- Rename `--format` option to `--output-format`, and change origin of constants and visibility +- Upgrade `cyclonedx/cyclonedx-library` constraint to use major version 3 +- Use latest SBOM specification version (1.6) as default +- Consider serialNumber as optional and do not stop SBOM generation if an appropriate source of randomness cannot be found +- Default build strategy has evolved to produce a new decorated console table format +- Version of BOX Manifest used to generate stub (from template) is now identified +- Introduces auto-detection by new filenames (see `Bartlett\BoxManifest\Composer\DefaultStrategy::getCallable` for details) + +### Fixed + +- [#11](https://github.com/llaville/box-manifest/issues/11) : No longer require `phar.readonly` to be off for using PHPUnit + +**Full Changelog**: [3.5.1...4.0.0-rc.1](https://github.com/llaville/box-manifest/compare/3.5.1...4.0.0-rc.1) diff --git a/.changes/unreleased/Added-20240730-130020.yaml b/.changes/unreleased/Added-20240730-130020.yaml deleted file mode 100644 index 238df4f..0000000 --- a/.changes/unreleased/Added-20240730-130020.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: shortcut -b for --bootstrap option -time: 2024-07-30T13:00:20.12759332Z diff --git a/.changes/unreleased/Added-20240730-131401.yaml b/.changes/unreleased/Added-20240730-131401.yaml deleted file mode 100644 index 0815279..0000000 --- a/.changes/unreleased/Added-20240730-131401.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: shortcut -r for --resource option -time: 2024-07-30T13:14:01.733272193Z diff --git a/.changes/unreleased/Added-20240820-070201.yaml b/.changes/unreleased/Added-20240820-070201.yaml deleted file mode 100644 index 395cf48..0000000 --- a/.changes/unreleased/Added-20240820-070201.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: new Make command (to replace legacy commands) -time: 2024-08-20T07:02:01.73332149Z diff --git a/.changes/unreleased/Added-20240820-072006.yaml b/.changes/unreleased/Added-20240820-072006.yaml deleted file mode 100644 index 734c1f2..0000000 --- a/.changes/unreleased/Added-20240820-072006.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: new inspect command to show PHAR manifest list and details -time: 2024-08-20T07:20:06.707468864Z diff --git a/.changes/unreleased/Added-20240820-131047.yaml b/.changes/unreleased/Added-20240820-131047.yaml deleted file mode 100644 index 33de5c8..0000000 --- a/.changes/unreleased/Added-20240820-131047.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: install bamarni/composer-bin-plugin to handle dev tools without conflicts -time: 2024-08-20T13:10:47.256107654Z diff --git a/.changes/unreleased/Added-20240823-151742.yaml b/.changes/unreleased/Added-20240823-151742.yaml deleted file mode 100644 index fab598d..0000000 --- a/.changes/unreleased/Added-20240823-151742.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Added -body: 'introduces new ManifestFactory methods: toSbomJson and toSbomXml' -time: 2024-08-23T15:17:42.531028987Z diff --git a/.changes/unreleased/Changed-20240730-045524.yaml b/.changes/unreleased/Changed-20240730-045524.yaml deleted file mode 100644 index 94be7e9..0000000 --- a/.changes/unreleased/Changed-20240730-045524.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: removed usage of deprecated Fidry/Console elements -time: 2024-07-30T04:55:24.108820146Z diff --git a/.changes/unreleased/Changed-20240730-130756.yaml b/.changes/unreleased/Changed-20240730-130756.yaml deleted file mode 100644 index e3b9846..0000000 --- a/.changes/unreleased/Changed-20240730-130756.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: rename --format option to --output-format, and change origin of constants and visibility -time: 2024-07-30T13:07:56.610467314Z diff --git a/.changes/unreleased/Changed-20240730-131757.yaml b/.changes/unreleased/Changed-20240730-131757.yaml deleted file mode 100644 index 2a15230..0000000 --- a/.changes/unreleased/Changed-20240730-131757.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: upgrade cyclonedx/cyclonedx-library constraint to use major version 3 -time: 2024-07-30T13:17:57.432111975Z diff --git a/.changes/unreleased/Changed-20240730-133243.yaml b/.changes/unreleased/Changed-20240730-133243.yaml deleted file mode 100644 index f808298..0000000 --- a/.changes/unreleased/Changed-20240730-133243.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: use latest SBOM specification version (1.6) as default -time: 2024-07-30T13:32:43.197340312Z diff --git a/.changes/unreleased/Changed-20240730-134001.yaml b/.changes/unreleased/Changed-20240730-134001.yaml deleted file mode 100644 index bdcfbea..0000000 --- a/.changes/unreleased/Changed-20240730-134001.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: consider serialNumber as optional and do not stop SBOM generation if an appropriate source of randomness cannot be found -time: 2024-07-30T13:40:01.670461564Z diff --git a/.changes/unreleased/Changed-20240804-071047.yaml b/.changes/unreleased/Changed-20240804-071047.yaml deleted file mode 100644 index d471497..0000000 --- a/.changes/unreleased/Changed-20240804-071047.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: give a chance to keep migration from v3 to v4 still working, but consider legacy commands as deprecated -time: 2024-08-04T07:10:47.946091183Z diff --git a/.changes/unreleased/Changed-20240804-072013.yaml b/.changes/unreleased/Changed-20240804-072013.yaml deleted file mode 100644 index 1c2b9c9..0000000 --- a/.changes/unreleased/Changed-20240804-072013.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: Default build strategy has evolved to produce ansi format first rather than console format (that was replaced by tests/fixtures/my-manifest.php implementation) -time: 2024-08-04T07:20:13.133179881Z diff --git a/.changes/unreleased/Changed-20240805-144517.yaml b/.changes/unreleased/Changed-20240805-144517.yaml deleted file mode 100644 index 48972da..0000000 --- a/.changes/unreleased/Changed-20240805-144517.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: Version of BOX Manifest used to generate stub (from template) is now identified -time: 2024-08-05T14:45:17.166441661Z diff --git a/.changes/unreleased/Changed-20240809-043328.yaml b/.changes/unreleased/Changed-20240809-043328.yaml deleted file mode 100644 index e020bdd..0000000 --- a/.changes/unreleased/Changed-20240809-043328.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: Changed -body: introduces auto dectection by filename ansi.txt -time: 2024-08-09T04:33:28.382058965Z diff --git a/.changes/unreleased/Fixed-20231019-061046.yaml b/.changes/unreleased/Fixed-20231019-061046.yaml deleted file mode 100644 index 56a3a73..0000000 --- a/.changes/unreleased/Fixed-20231019-061046.yaml +++ /dev/null @@ -1,4 +0,0 @@ -kind: Fixed -body: '[#11](https://github.com/llaville/box-manifest/issues/11) : No longer require - `phar.readonly` to be off for using PHPUnit' -time: 2023-10-19T06:10:46.940734944Z diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 709ba76..f77a90d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,17 +44,15 @@ jobs: - # Build the current release with artifacts (php archive) name: Build Release Artifact run: | - bin/box-manifest make -r console-table.txt -r plain.txt -r sbom.json build - bin/box-manifest make --output-stub stub.php stub - bin/box-manifest make compile -c box.json.dist -vvv --ansi + bin/box-manifest make build stub configure compile -r console-table.txt -r plain.txt -r sbom.json --output-stub stub.php --output-conf box.json.dist -vvv --ansi - # https://github.com/softprops/action-gh-release name: Create Release from current tag if: github.ref_type == 'tag' uses: softprops/action-gh-release@v2 with: # https://github.com/softprops/action-gh-release#-customizing - prerelease: false - draft: false + prerelease: true + draft: true body_path: ${{ github.workspace }}/.changes/${{ github.ref_name }}.md # https://github.com/softprops/action-gh-release#%EF%B8%8F-uploading-release-assets files: | diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..44938ce --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,50 @@ + +# Changes in 4.x + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), +and is generated by [Changie](https://github.com/miniscruff/changie). + +## 4.0.0-rc.1 - 2024-09-04 + +**Road to stable version 4.0** + +After almost one year since the latest 3.5.1 release, we’re getting closer to BOX Manifest 4.0 ! + +This new major version is based on Pipeline Pattern implemented with excellent package + +Read this good article , +if you are unconfortable with this design pattern. + +An effort was made to write a better and enhanced documentation. Read it carefully at + +All features are already included into this first release candidate. +So, if you want to improve this package before final stable version 4.0, please carefully test this version and report any issues found in the [bug reporting system](https://github.com/llaville/box-manifest/issues). + +### Added + +- Shortcut `-b` for `--bootstrap` option +- Shortcut `-r` for `--resource` option +- New `make` command (to replace legacy commands) +- New `inspect` command to show PHAR manifest list and details +- Install `bamarni/composer-bin-plugin` to handle dev tools without conflicts +- Introduces new ManifestFactory methods: `toSbomJson` and `toSbomXml` + +### Changed + +- Removed usage of deprecated `Fidry/Console` elements +- Rename `--format` option to `--output-format`, and change origin of constants and visibility +- Upgrade `cyclonedx/cyclonedx-library` constraint to use major version 3 +- Use latest SBOM specification version (1.6) as default +- Consider serialNumber as optional and do not stop SBOM generation if an appropriate source of randomness cannot be found +- Default build strategy has evolved to produce a new decorated console table format +- Version of BOX Manifest used to generate stub (from template) is now identified +- Introduces auto-detection by new filenames (see `Bartlett\BoxManifest\Composer\DefaultStrategy::getCallable` for details) + +### Fixed + +- [#11](https://github.com/llaville/box-manifest/issues/11) : No longer require `phar.readonly` to be off for using PHPUnit + +**Full Changelog**: [3.5.1...4.0.0-rc.1](https://github.com/llaville/box-manifest/compare/3.5.1...4.0.0-rc.1) diff --git a/LICENSE b/LICENSE index 4e9f6d5..cf71656 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2023 Laurent Laville +Copyright (c) 2022-2024 Laurent Laville Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 4aaab3e..b86f011 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,10 @@ Provides a Symfony Console Application with the binary command `box-manifest` th - Can generate manifest in [CycloneDX SBOM Standard][cyclonedx] format (`sbom-json` or `sbom-xml`) - Can generate manifest in a simple key-value pairs `plain` text format (`key: value`) -- Can generate manifest in a decorated text format `ansi` or `console` (distinguish direct dependencies requirement and other uses) +- Can generate manifest in a decorated text format `console-style` or `console-table` (distinguish direct dependencies requirement and other uses) - Can generate manifest in a custom user format - Can generate a stub that should be able to display one or all manifests provided by the PHP Archive +- Can inspect a PHAR to find and display manifests contents ## Version Compatibility