Giter Site home page Giter Site logo

ximion / metainfocreator Goto Github PK

View Code? Open in Web Editor NEW
18.0 5.0 3.0 2.6 MB

Create AppStream MetaInfo files and auxiliary fd.o metadata easily

Home Page: https://www.freedesktop.org/software/appstream/metainfocreator/

License: GNU Lesser General Public License v3.0

JavaScript 1.17% TypeScript 42.14% HTML 49.71% CSS 0.36% Python 6.62%
appstream metadata appstream-metainfo freedesktop metainfo

metainfocreator's Introduction

AppStream MetaInfo Creator

AppStream is a cross-distro effort for providing metadata for software in the Freedesktop ecosystem. It provides a convenient way to get information about not installed software, and is one of the building blocks for software centers.

This web application provides an easy way to generate good initial metadata for some software types to represent them in software centers or to provide additional metadata for systems. Users just have to answer a few questions to get started with creating AppStream MetaInfo/AppData files.

Users

Users can use the production instance hosted at Freedesktop.org to generate their metadata. All metadata generation happens locally in the browser, no data is transferred to Freedesktop.

Developers

Build & Test

The MetaInfo Creator is an Angular (9+) web application intended to make it very easy for users to generate MetaInfo files to ship with their software.

Installing Angular

First, you need to install Node.js via your distribution's package manager. Then you need to fetch NPM, the Node package manager and install that one as well. Once that is finished, you can install the Angular CLI globally and set up the repository:

# install Angular
npm install -g @angular/cli
# retrieve other stuff we need
npm install .

Development server

Run ng serve for a development server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Build

Run the provided ./build-dist.py script to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

metainfocreator's People

Contributors

dependabot[bot] avatar probonopd avatar ximion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

metainfocreator's Issues

Error if no www. subdomain

The FreeDesktop site is browsable with or without the www. subdomain, but this web app errors when it's missing.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.freedesktop.org/software/appstream/metainfocreator/runtime-es2015.45e9bfaa34de10543cc5.js. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 200.

Module source URI is not allowed in this document: “https://www.freedesktop.org/software/appstream/metainfocreator/runtime-es2015.45e9bfaa34de10543cc5.js”.

Capitalisation and hyphenation of final element of <id>

Most packages on flathub capitalise the final element of a .

The specification seems to suggest that hyphens are acceptable in the final element https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic

This creator takes "Celestia-qt6" and "https://celestiaproject.space" and produces: <id>space.celestiaproject.celestia_qt6</id>

Should I should change every instance of the id to space.celestiaproject.celestia_qt6 or is space.celestiaproject.Celestia-qt6 is acceptable in the metainfo file?

Wishlist: Metainfo validation service

Having this tool will hopefully greatly help people put together properly working metainfo files. What would be great to have, too, would be a validation service for metainfo files, e.g., some REST API you could POST a metainfo file to and get back its validity.

Won’t allow hyphens in application ID

Hi there. Thank you for creating this great piece of software.
I was looking at using it for creating appstream metadata for my application called wormhole-gui. When I entered the unique identifier for it (com.github.jacalz.wormhole-gui), it complained about hyphens not being allowed.

I know that websites allow hyphens (https://wi-fi.org) and I couldn’t find any information about hyphens not being allowed for unique software identifiers (or appID). Is this something that is specific to the appstream specification or am I just missing something obvious here? I would greatly appreciate if someone could clear up the situation for me :)

Homepage is missing from the generated config

I included a homepage in the form:
Capture d’écran du 2023-09-17 14-44-57
but it's missing from the generated config:

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>net.launchpad.email_reminder</id>
  
  <name>Email-reminder</name>
  <summary>Send event reminders by email</summary>
  
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-3.0-or-later</project_license>
  
  <description>
    <p>
      Email-reminder allows users to define events that they want to be reminded of by email.  Possible events include birthdays, anniversaries and yearly events. Reminders can be sent on the day of the event and/or a few days beforehand.
    </p>
  </description>
  
  <launchable type="desktop-id">email-reminder.desktop</launchable>
  <screenshots>
    <screenshot type="default">
      <image>https://screenshots.debian.net/shrine/screenshot/336/simage/large-bd786dc14681f22164a138cf7c968902.png</image>
    </screenshot>
    <screenshot>
      <image>https://screenshots.debian.net/shrine/screenshot/150/simage/large-60f5de6cb52722984fecbb86f5a880d7.png</image>
    </screenshot>
    <screenshot>
      <image>https://screenshots.debian.net/shrine/screenshot/337/simage/large-d39de85025841fa04a20e40884921140.png</image>
    </screenshot>
  </screenshots>
</component>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.