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

Add contribution guide #527 #528

Merged

Conversation

fflorent
Copy link
Collaborator

@fflorent fflorent commented Jun 6, 2023

This PR fixes issue #527:

  • This adds a general contribution guide as suggested by the community Github documentation;
  • This helps developers to bootstrap setup their environment and start contributing;

Feedback highly welcome :)

Copy link
Member

@paulfitz paulfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fflorent, this will be helpful! Could do with linking to it from the README, you have more precise information about building than it does.

- [translate](/documentation/translate.md)
- [write tutorials and user documentation](https://github.com/gristlabs/grist-help)
- [develop](/documentation/develop.md)
- report issues or suggest enhancement (TODO)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably.

Maybe to go further, an issue template could help ^^.

documentation/develop.md Outdated Show resolved Hide resolved
documentation/develop.md Outdated Show resolved Hide resolved

To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I use nvm personally but not sure if I'd put it as a requirement; could be a recommendation. The requirement is some version of node. The exact version to recommend is a bit fluid, I think I'd say 16 (though I think our tests and docker image may still use an older version), last I heard there was some awkwardness running browser tests with node 18 on osx m1 (cc @georgegevoian).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think 18 may work as long as it's not the arm64 version. The wrinkle with tests was that the version of chromedriver we currently use is stale (74) and doesn't support arm64, but I think when I tested a while back with newer versions most tests still passed, and the few that didn't were due to breaking changes in Selenium.

To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
- Firefox and/or Chromium to run the end-to-end (nbrowsers) tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know if the tests can actually run with firefox? We used to test with both, but then slipped to just using one (chrome).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so, I'll test that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And maybe just say "browser tests" instead of "(nbrowsers) tests".

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't nbrowser tests cover not only the browser but also the back-end? I would keep the term end-to-end tests, unless all of them don't require to run a server.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, end-to-end is fine. I was hoping to replace/eliminate nbrowsers since it was a bit jargony (user won't know anything about the idiosyncratically named nbrowser tests yet) and also the s is maybe a bit confusing (the test target it is referring to is nbrowser). How about just dropping (nbrowsers)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see it is already fixed 👍

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, end-to-end is fine

If you're uncomfortable with naming them end-to-end, don't hesitate to tell me. I am not very confident on how to name them ^^

$ npm install -g yarn
```

Now each time you want to load nodejs and yarn in your environment, just run the following command at grist-core root directory:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"at grist-core" -> "in the grist-core"

documentation/develop.md Outdated Show resolved Hide resolved
documentation/develop.md Show resolved Hide resolved
documentation/develop.md Show resolved Hide resolved

## Develop widgets

TODO
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is about custom widgets, it could point to https://github.com/gristlabs/grist-widget#readme or https://support.getgrist.com/widget-custom/ (though I do see looking at this now that neither is ideal).

@fflorent fflorent force-pushed the issue-527-contribution-guide branch from 6884955 to d22c94d Compare June 8, 2023 16:25
Copy link
Collaborator Author

@fflorent fflorent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your review @paulfitz, I changed some stuffs in accordance to your remarks.

documentation/develop.md Show resolved Hide resolved
To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
- Firefox and/or Chromium to run the end-to-end (nbrowsers) tests
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so, I'll test that.

documentation/develop.md Show resolved Hide resolved
documentation/develop.md Outdated Show resolved Hide resolved
Copy link
Member

@paulfitz paulfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for iterating, just a few small comments


#### Using nodejs

You can also use nodejs installed in your system. To prevent instabilities, ensure that the `node --version` command a version equal or ulterior to the one in `.nvmrc`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instabilities -> incompatibilities?
"command a version" -> "command reports a version"
I'd say "greater" rather than "ulterior"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd still vote against ulterior. Maybe "an equal or later/greater version"?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oopsi! I fix that, sorry for having missed that one.

documentation/develop.md Outdated Show resolved Hide resolved
documentation/develop.md Outdated Show resolved Hide resolved
@fflorent fflorent requested a review from paulfitz June 13, 2023 08:15
Copy link
Member

@paulfitz paulfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there! Thanks for doing this (and for your patience).

documentation/develop.md Outdated Show resolved Hide resolved
To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
- Firefox and/or Chromium to run the end-to-end (nbrowsers) tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see it is already fixed 👍

documentation/develop.md Outdated Show resolved Hide resolved
documentation/develop.md Outdated Show resolved Hide resolved
documentation/develop.md Outdated Show resolved Hide resolved
Copy link
Member

@paulfitz paulfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fflorent !

@fflorent fflorent force-pushed the issue-527-contribution-guide branch from b4df9c4 to 5f3a0c5 Compare June 14, 2023 12:02
@fflorent
Copy link
Collaborator Author

@paulfitz Good! 😄

I rebased and squashed the commits for more clarity before you merge it

Copy link
Member

@paulfitz paulfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fflorent !

@paulfitz paulfitz merged commit 6a2010f into gristlabs:main Jun 14, 2023
fflorent added a commit to incubateur-territoires/grist-core that referenced this pull request Jun 20, 2023
@vviers vviers added the anct label Jul 11, 2023
@fflorent fflorent deleted the issue-527-contribution-guide branch July 11, 2023 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants