responsively-org / responsively-app

A modified web browser that helps in responsive web development. A web developer's must have dev-tool.
https://responsively.app
GNU Affero General Public License v3.0
22.07k stars 1.1k forks source link

Submit Responsively App to Snap Store / Flathub (Flatpak) for Linux #549

Open karlhorky opened 3 years ago

karlhorky commented 3 years ago

🚀 Feature Request

First of all, thanks for this app, really cool! Appreciate the work that you're doing to make it easier to develop responsive websites!

📝 Description

It would be nice to have the capability of installing Responsively App via Snap and/or Flatpak on Linux. For this it would need to be submitted to one or both of the following:

✨ Describe the solution you'd like

Responsively App is submitted to one or both of the stores above.

✍️ Describe alternatives you've considered

Keeping the Linux installation process the same.

open-collective-bot[bot] commented 3 years ago

Hey @karlhorky :wave:,

Thank you for opening an issue. We will get back to you as soon as we can. Have you seen our Open Collective page? Please consider contributing financially to our project. This will help us involve more contributors and get to issues like yours faster.

https://opencollective.com/responsively

We offer priority support for all financial contributors. Don't forget to add priority label once you become one! :smile:

lomby92 commented 3 years ago

Could be really useful, if i will have some time i will check how to do this. It will be an honor

jjavierdguezas commented 3 years ago

Hi @lomby92 , thanks, I am assigning this to you

lomby92 commented 3 years ago

Dev status

I don't find a way to locally test the snap package (generated by the electron-builder) but seems that the creation of this package is really simple. But, there is something to add: publishing to snapcraft.

This operation is not so difficult:

  1. login into snapcraft through CLI (using a secret from the env)
  2. push/upload the .snap file
  3. logout

These operations must be run into CI and here is where i stopped. Is TravisCI still used? I don't see any message (maybe i don't find these) from Travis into this repository.

If TravisCI is not used, can i set up a GH action to publish the snap?

In both cases we will need a snapcraft account with a proper key to authorize the push (i don't need this key, i will use this through the env variable).


Snap configuration

A snap package has // to identify a release. In our case the track should be latest in all cases. We should not use the branch parameter as we don't need to QA all single PRs (tell me if i'm wrong). The risk parameter should be the only one useful.

Since we cannot locally test a .snap file, we can try to release two levels of risk:

I'm not a snap expert but from documentation i see that the edge risk-level could be useful to test the snap release, to prevent errors that don't occur into other package type.

doc: https://snapcraft.io/docs/channels#heading--risk-levels

NOTE: an alternative way could be to split this issue in two:


@jjavierdguezas can you (or another contributor) help me?

lomby92 commented 3 years ago

I don't know, maybe @manojVivek is the right contributor?

jjavierdguezas commented 3 years ago

Hi @lomby92 I'm sorry but I don't have much free time these days I think that managing to configure a CI / CD pipeline is a great idea, not only for this feature but for others (like the chocolatey package) I think @manojVivek will be able to guide you better In my case, when I developed the functionality for chocolatey, I made some modifications and created some scripts to generate and publish the package, only that I have executed it manually in each release Obviously configuring it in a pipeline is much better

lomby92 commented 3 years ago

Update

I found a way to locally test a snap package: 1) run yarn package-linux, it creates a .snap file into desktop-app/release folder 2) extract the .snap file into a folder (eg: temp folder) unsquashfs -d /tmp/responsively-snap ./desktop-app/release/<.snap file name> 3) run the application /tmp/responsively-snap/responsively-app 4) try the app with snap confinements and rules: cd /tmp/responsively-app and then snap try. It will install the app locally, you can list snap packages with snap list

QUESTION Do you have some specific part of the app that could be useful to manually test? (it's my first time in the project)


CI/CD

I will wait your decision about using TravisCI or a GitHub action.

As the .snap file is manually testable i think that we should release only one release-level of the app (instead of two as in the previous comment), the stable one.

QUESTION Let me know if you don't want to release to the snap store as a stable release

stephanlamoureux commented 2 years ago

Could you do flatpak as well?

ribaricplusplus commented 11 months ago

This would be great to have please