-
Notifications
You must be signed in to change notification settings - Fork 236
[FEATURE] apm.yml: support homepage, repository, keywords, and structured author fields #1621
Copy link
Copy link
Closed
Labels
area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.enhancementDeprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.priority/lowAccepted but not time-sensitiveAccepted but not time-sensitivestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Metadata
Metadata
Assignees
Labels
area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.enhancementDeprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.priority/lowAccepted but not time-sensitiveAccepted but not time-sensitivestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Done
Problem
apm packnow generatesplugin.jsonfromapm.ymlidentity fields (#1597), but the generated manifests lack optional enrichment fields that hand-authoredplugin.jsonfiles typically include:homepage-- project URLrepository-- source code URLkeywords-- discoverability tagsauthor.url-- author website (currentlyauthor:is a plain string)These fields are cosmetic (hosts do not require them), but their absence means projects migrating from hand-authored manifests lose metadata.
Evidence from microsoft/Build-CLI
The hand-authored files include fields that APM cannot currently express:
Proposed solution
Extend the top-level
apm.ymlidentity block to accept these optional fields:Backward compatibility
author: Microsoft(string) continues to work, mapped to{"name": "Microsoft"}author: {name: Microsoft, url: ...}(object) adds the url fieldhomepage,repository,keywordsare optional -- omitting them changes nothingauthoras an object with{name, email, url}keys at the per-package level (_AUTHOR_OBJECT_KEYSinyml_schema.py)Implementation scope
synthesize_plugin_json_from_apm_yml()indeps/plugin_parser.pyto pass throughhomepage,repository,keywords, and structuredauthorbuild_plugin_manifest()incore/plugin_manifest.pyto include these fieldsapm.ymlreference, package-authoring guideWhat this does NOT include
Related
apm packgenerates plugin.json (parent feature, merged)