Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

integration of goreleaser into ci process #104

Open
mrtrkmn opened this issue May 29, 2020 · 9 comments
Open

integration of goreleaser into ci process #104

mrtrkmn opened this issue May 29, 2020 · 9 comments

Comments

@mrtrkmn
Copy link
Contributor

mrtrkmn commented May 29, 2020

It would be nice to integrate Goreleaser process into CI/CD step to have automated release action with tagged commit.

Proposal

  • With integration of (Github actions) (could be ? or Travis CI does not matter very much ) + Goreleaser, the process of releasing new version would be much convenient.

  • Having Goreleaser in pocket means that uploading necessary binary to homebrew (or another package manager ) will be much easy than anticipated. Seems, homebrew issue Run as a service on Homebrew #30 has been assigned to @patyogesh however with this approach, it is possible to shot two birds (-tasks-) with one stone :)

@patyogesh, would like to have comment on it ? I have no glue about the process of your development at the moment however if you think or might think in same way , we can figure out something in common. Otherwise, this issue can also close #30.

Any suggestion, comment, or improvement related to this issue is very welcome !

@yakuter
Copy link
Collaborator

yakuter commented May 29, 2020

I have a question related to releases @mrturkmen06 ? We have multiple clients working with this backend API. how can we sync their relases with backend? Of cource backend will be the base and they will try to catch up with API.

I think the best way is, on frontend clients release page, we should write "this release works with backend API's xx version".

Is there another way to do this?

By the way I will study for goreleases then answer to you.

@mrtrkmn
Copy link
Contributor Author

mrtrkmn commented May 29, 2020

@yakuter. Just to be on the same page, how can we sync their releases with backend? If I understood it correctly, this means that having auto-update functionality in all clients. I think, it varies from client to client, I do not know whether it is implemented or not but simple check for versioning in all clients would be creating an API endpoint in server side which returns only version of the product and match it with client's product. Of course, when it is done a pop up message can be displayed to client ( implementation depends on programming language but logic is same). Once they know that there is new version released, they can install new version. Again currently, I did not had time to get deeper into product hence I do not know how clients are getting updates. (If they are receiving updates manually, like going release page and fetching latest release to their device, it can be improved by implementing auto update service )
The ideal case would be for making sure that all clients got the notification regarding to new release and ;

  • implementing similar approach which Firefox did, (does not have to be in that scale)
  • Providing options to clients whether they would like to get
    • enabling auto update,
    • check before update
    • do not update options in client sides by informing client

Lastly, letting client know that which permissions are required to have.

Again, I do not know the internal structure, communication and etc of all clients to server, however, cloud functionalities could be another approach and very handy to consider as well. It has auto scaling, notification pushes, isolation and much more, basically with cloud, you can convert your problems to their problems. (no need to worry afterwards. )

I think, the responsibility of updating(-syncing-) their own software should be left to clients by informing messages (parts which will not work, vulnerabilities they may have.)

This issue was not pointing to have such a service, but of course, if it is not exist already, then that could prioritized thing to do. (-Since I do not have any glue about the roadmap this project follows, it becomes easy for me to make assumptions - )

  • Writing notes to release page is always nice, however when there is an option which can automatically create all change log from version X to Y, then it might start to come much easy to add few notes on top of release.

I do not know, how much I addressed your question or gave helpful explanation, however I tried to give some abstract information (in my opinion) what could be done for the problem that I have understood from your question.

Apart from that, it would also be nice to have the roadmap open (with no sensitive information to any team member or organization) as docker community is doing. Of course, it does not have to complex or painful to understand but it may lead to more understanding how project will be transformed in time. Furthermore, it can give more idea and impression to others who would like to contribute . (Just an idea, not have to have) (Of course, it is also possible to have milestones as well.)

@mrtrkmn
Copy link
Contributor Author

mrtrkmn commented Jun 19, 2020

Any update ? @yakuter

@mrtrkmn
Copy link
Contributor Author

mrtrkmn commented Jun 26, 2020

:\

@yakuter
Copy link
Collaborator

yakuter commented Jun 26, 2020

Sorry for late answer. I worked a bit on goreleaser. It is great :) Now version v1.1.1 is released with it. What else can we do with it?

Well @mrturkmencom we also have another issue I noticed workin on this issue. We have a serious dependency on config.yml file. Because of it, we can't say that works just with a binary. How can we get rid of that file? By the way passwall already supports env variables.

@yakuter
Copy link
Collaborator

yakuter commented Jun 26, 2020

Forget config file issue, I fixed it with a3c7d40 :)

@mrtrkmn
Copy link
Contributor Author

mrtrkmn commented Jun 27, 2020

What else can we do with it?

I could not understand very well the issue related to config file from the explanation :( sorry.

By the way, is there any chat area that I can point my concerns and questions about the project, creating issue is also fine however it also increases to have redundant issues, too many conversation and etc. I have tried community tab from https://signup.passwall.io/ however, seems it is exclusive for internal usage. I pointed out several times by asking is there any area chat area or not, however I could not get any straightforward response, that's why I wished to ask it again.

@yakuter
Copy link
Collaborator

yakuter commented Jun 27, 2020

Hello, I created passwall slack group but couldn't announce it well. Here is the invite link.

https://join.slack.com/t/passwall/shared_invite/zt-ff2u6wj9-MhNpEbyG86irjFs9NygqUA

I will think about goreleaser issues. Thank you so much @mrturkmencom

@mrtrkmn
Copy link
Contributor Author

mrtrkmn commented Jun 27, 2020

Thanks a lot !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants