Skip to content

Include release date as optional metadata in manifests #873

Closed

Description

@chausner

I propose to add an optional metadata field to the manifests to store the date of when the version of the software was released (not when the manifest was written/last updated, although that might also be interesting and could even be derived automatically from git history). I think the version release date would sometimes be very useful (and IMO certainly more useful than some of the other information that winget show currently displays).

Why do I think that release dates are interesting?

Suppose you found some app via a tag search through winget search that you don't know yet. From the version number alone that winget show displays, it is not apparent whether this is an app that is still actively maintained or whether it was last updated years ago. This information can be a deciding factor whether to install an application or look for an alternative instead.

Some potential hurdles:

  • It might not always be possible to find out the release date of a version as it is sometimes simply not documented on the publisher website. That's why the metadata should be optional.
  • Some applications have static installers that rarely get updated and where the app self-updates after the first start (this is the case for JDownloader, for example). In this case, it might be confusing for users or manifest writers what the release date in the manifest means. On the other hand, you may argue that in this case we already have the same problem with the version number in the manifest which does not reflect the latest version number that users end-up with when they start the app, so it is probably not really a new issue.

Activity

  1. added
    Issue-FeatureThis is a feature request for the Windows Package Manager client.
    on Apr 15, 2021
  2. ghost added
    Needs-TriageIssue needs to be triaged
    on Apr 15, 2021
  3. jedieaston commented on Apr 15, 2021

    @jedieaston
    Contributor

    This would also be useful for tracking when a package manifest with PackageVersion: latest is updated, since at the moment you can kind of figure it out via seeing when the hash changes in git log, but it's a real pain and not accessible to the end user.

  4. chausner commented on Apr 15, 2021

    @chausner
    ContributorAuthor

    The list of versions displayed by winget show --versions could be made more useful by also showing the release date of each version.

  5. denelon commented on Apr 15, 2021

    @denelon
    Collaborator

    I'd be open to adding an optional release date field. We would need to lock on the date format so it's consistent across packages. It's also something that essentially could change with any PR, but that's the world we live in, so I think the risk is fairly low.

    I like the suggestion regarding winget show --versions.

    We have a few new fields likely coming over the next few months to support a better store source and experience. The hope is that it's a non-breaking change with a new v1.1.0 manifest schema. The 1.0 clients could essentially ignore the new fields, but the 1.1 capable clients would be able to render the meta-data. That would be an ideal time to include any new fields.

  6. chausner commented on Apr 21, 2021

    @chausner
    ContributorAuthor

    Shall I go ahead and draft a spec for this or would you rather bundle this with the other additional planned fields that you mentioned?

  7. denelon commented on Apr 21, 2021

    @denelon
    Collaborator

    chausner this would need a spec since changes to the schema have a large surface area for the project. Our validation pipelines, the HTTP REST API, and the nuget package we use to share these kinds of things would all need to be updated. We would also need a minor version bump on the schemas. Depending on your rate of progress, I can add some of the other fields into the spec and we can see about getting the new fields bundled together.

  8. added this to the milestone on May 5, 2021
  9. denelon commented on Jul 1, 2021

    @denelon
    Collaborator

    This field goes in the installer node as installers are released on different dates in some cases.

    The value would be displayed under Installers: in winget show

    • XS:Date Format
    • Year-Month-Day
    • YYYY-MM-DD

    Validation Considerations

    "February 31st, 2021" <- Not Valid
    If date >Today <- Not Valid
    if date <1970-01-01 <- Not Valid

    Installers:
      - InstallerType: exe
        InstallerArchitecture: x64
        InstallerSHA256: 12341234123412341234123412341234123412341234
        InstallerURL: https://www.contoso.com/awesomeapp/1.0.0/awesomeapp.x64.exe
        ReleaseDate: 2021-06-30
  10. denelon commented on Oct 1, 2021

    @denelon
    Collaborator

    "ReleaseDate": {
    "type": [ "string", "null" ],
    "format": "date",
    "description": "The installer release date"
    },

  11. modified the milestones: , v1.2-Client on Oct 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Area-ManifestThis may require a change to the manifestIssue-FeatureThis is a feature request for the Windows Package Manager client.

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions