diff --git a/src/package-modules.js b/src/package-modules.js index 316bb77..d77d866 100644 --- a/src/package-modules.js +++ b/src/package-modules.js @@ -100,6 +100,30 @@ async function getComposerJson(instruction, package, ref) { return fs.readFileSync(package.composerJsonFile, 'utf8'); } +/** + * Determine the stability level of a composer version string + * @param {string} version - The version string to check (e.g. "2.4.0-beta1", "1.0.0", "dev-master") + * @returns {string} - Returns 'dev', 'alpha', 'beta', 'RC', 'stable', or 'patch' + */ +function getVersionStability(version) { + version = version.toLowerCase(); + + if (version.startsWith('dev-') || version.includes('-dev')) { + return 'dev'; + } + if (version.includes('-alpha')) { + return 'alpha'; + } + if (version.includes('-beta')) { + return 'beta'; + } + if (version.includes('-rc')) { + return 'RC'; + } + + return 'stable'; +} + /** * @param {repositoryBuildDefinition} instruction * @param {packageDefinition} package @@ -545,18 +569,18 @@ async function determineMagentoCommunityEditionProject(url, ref, release) { * * @param {repositoryBuildDefinition} instruction * @param {buildState} release - * @param {{minimumStability:String|undefined, description:String|undefined}} options + * @param {{description:String|undefined, transform: Array}} options * @returns {Promise<{}>} */ async function createMagentoCommunityEditionProject(instruction, release, options) { const defaults = { - minimumStability: 'stable', description: 'eCommerce Platform for Growth (Community Edition)', transform: {}, }; - const {minimumStability, description, transform} = Object.assign(defaults, (options || {})) + const {description, transform} = Object.assign(defaults, (options || {})) const name = `${instruction.vendor}/project-community-edition`; const version = release.version || release.dependencyVersions[name] || release.ref; + const minimumStability = getVersionStability(version); const {packageFilepath, files} = await createComposerJsonOnlyPackage( instruction, release, diff --git a/src/release-branch-build-tools.js b/src/release-branch-build-tools.js index 3fdcc10..0b326c7 100644 --- a/src/release-branch-build-tools.js +++ b/src/release-branch-build-tools.js @@ -156,10 +156,7 @@ async function processBuildInstruction(instruction, release) { console.log('Packaging Magento Community Edition Project'); built = await createMagentoCommunityEditionProject( instruction, - release, - { - minimumStability: 'alpha' - } + release ); Object.assign(packages, built); } diff --git a/src/release-build-tools.js b/src/release-build-tools.js index 0b2c2a7..5ce09db 100644 --- a/src/release-build-tools.js +++ b/src/release-build-tools.js @@ -273,8 +273,7 @@ async function buildMageOsProjectCommunityEditionMetapackage(instruction, releas instruction, release, { - minimumStability: 'stable', - description: 'Community built eCommerce Platform for Growth', + description: 'Community-built eCommerce Platform for Growth', transform: { [`${instruction.vendor}/project-community-edition`]: [ (composerConfig) => {