sorry-cypress / sorry-cypress

Open-source, free, self-hosted alternative to Cypress Dashboard
https://sorry-cypress.dev
MIT License
2.7k stars 294 forks source link

General project improvements #58

Closed henryruhs closed 4 years ago

henryruhs commented 4 years ago

Hey,

  1. Move the project to sorry-cypress namespace
  2. Split project into repositories
    • Director
    • Dashboard
    • API
    • Dockerfiles
    • Documentation
    • Playground (Demo)
  3. Extract the documentation and merge README.md and the Wiki
  4. Static code analyser / Linter?
  5. Unit testing?
  6. CI integration?

In case you would like to keep this inside a mono-repo then I suggest to create /docs folder inside each of the packages and link them inside README.md.

Keeping this as a mono-repo will make it quite hard to handle tooling and different CI stages. On the other hand the whole release and build cycle is getting complicated once you split this up.

Anyway, this are just suggestions to bring this project to the next level. The lack of unit testing and CI makes me feel a bit uncomfortable to use it on enterprise projects.

agoldis commented 4 years ago

Thanks for the suggestions @redaxmedia!

I definitely want to move the project to the next level and it's exciting to see contributions / interest.

As for suggestions:

Move the project to sorry-cypress namespace

I have created sorry-cypress organizations on Github and Dockerhub. The actual transfer is more delicate process.

I will need to make sure nothing breaks during the transfer - i.e. github actions.

Split project into repositories

When I work on the project I use docker-compose to spin up the dev environment quickly, that works quite well.

It also simplifies the release process - bumping a tag and running a github action on a monorepo with all the packages available.

I do see difficulties with tooling as you've mentioned - that's a good point! So far there're not much, I believe as soon as the pain to maintain a monorepo will overcome the benefits, we'd switch.

I think it's a good move to have other, non-core code as a separate repo (e.g. examples).

I am not aware of a good way to keep it this way with multiple repos. If you're aware of a similar project that supports a good devexp with multiple repos, or specific know-hows, I definitely would give it a try!

Extract the documentation and merge README.md and the Wiki

I have been playing around with README / wiki documentation and going back and forth for a while. What you've suggested sounds good, do you have any particular structure in mind?

Linter + CI + testing

Yes, yes and yes. As you could see, I have been doing it mostly alone, except from few but valuable contributions. The decision to not have tests + CI earlier was deliberative, but now with more users it makes sense.


To summarize - those are good suggestions. The main issues is capacity and resources - as for many open source projects. If you have resources that can help tackle some of the issues mentioned, that would be very appreciated!

henryruhs commented 4 years ago

I'm open to contribute in terms of consulting, concepting and setting up repositories and infrastructure as tooling and CI. First we need something like a masterplan with milestones that provide a smooth transition. Do you have Telegam? Drop me a line @redaxmedia and let's discuss a bit further.

agoldis commented 4 years ago

Hi @redaxmedia

I barely use Telegram, if you don't mind let's just use this issue, shouldn't be too complex.

Here's the list of tasks and

Added in #67

Added in #67 testing and lint runs via github actions.

This is a long-term task, I have added the infrastructure to enable writing tests on #67, now I will ask people to start adding tests for changed code. I am not happy with how dashboard React components are organized - there're a lot of loopholes that adding linter revealed.

PR are welcome, would you share an example of a repo with good documentation structure and content that you like?

I have created the org, I need to find time to do the actual move and verify how that would affect automations that are built upon the repo address. That doesn't seem urgent though.

Will do after moving to the new namespace

agoldis commented 4 years ago

@redaxmedia I am confused... What do you mean?

If you had a particular way of doing CI / tests in your mind, please don't hesitate - I am happy to accept PRs and add collaborators to the project.

henryruhs commented 4 years ago

Give me a minute to explain...

I have the strong opinion that slow programmers get faster to results. They focus on brain storming, create concepts and think over before taking action. Doing this in a team is even better.

The fact that you don't spend one or two hours for a chat but instantly opened your IDE and started coding is just a bit disappointing. Not sure if you get the point but you properly google for "slow programming" to get an idea. We shouldn't touch files countless times just because we have a different opinion how things should look like in the end.

agoldis commented 4 years ago

Thanks for the explanation Henry.

I am quite busy with life nowadays, I don't have the capacity for higher communication bandwidth, unfortunately. I have had few hours today to spend, I was happy with the progress because I didn't have time to tackle it during the week, and people have invested their time / effort so I wanted to take action and support their efforts... Also, most of the infrastructure changes I have implemented are quite standard tools used across the ecosystem.

Let's try to use github issues - that will allow other people that are interested to participate and works better for me.

I like that you have explored different philosophies of doing software and picked a particular one. I am looking forward to see how that could be applied for that project.

What aspects of the project do you feel strong about improving first? So far we have:

P.S. There're more gentle ways than "guess you worked alone for too long" to explain your latter comment 😕

weyert commented 4 years ago

Personally, I think having everything in one repository is really convenient for people that want to start working on this project. I definitely wouldn't be consider contributing if I have to go checkout five repositories to get started. Personally, I don't see the added value of moving everything to separate repositories, I am working on a project which has 50+ repositories and it's difficult to keep track of changes lapsing over multiple repositories.