passwall / passwall-server

Passwall Server is the core backend infrastructure for Passwall platform
https://passwall.io
GNU Affero General Public License v3.0
755 stars 105 forks source link

integration of goreleaser into ci process #104

Open mrtrkmn opened 4 years ago

mrtrkmn commented 4 years ago

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

Proposal

@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 commented 4 years ago

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 commented 4 years ago

@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 ;

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 - )

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 commented 4 years ago

Any update ? @yakuter

mrtrkmn commented 4 years ago

:\

yakuter commented 4 years ago

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 commented 4 years ago

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

mrtrkmn commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

Thanks a lot !