-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Add Pull Request Environments #8258
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
Comments
Thanks for opening this issue!
|
Interesting! Could you fill out the complete template, to provide a better basis for discussion? |
@mtrezza I have just filled out the template. Let me know what you think. |
Thanks! Could you give some examples for how this would be used? Is this helpful for the creator of the PR, or for someone who only reported an issue but did not create the PR? I would imagine for example:
Is that the main use case? |
Hey @mtrezza Once a Pull Request is created, a preview of the pull request would be created alongside it and then shown on the PR through a comment. This PR will be public and accessible to anyone, as long as they have the link and the PR on the repo is open. This would be helpful for the maintainer mostly and to also the creator of the PR. The maintainer will get a instance of the preview built from the PR and check directly if the code changes work. The contributor would also be able to check and iterate on the PR by seeing if their changes reflect well in the preview. user A who has reported the issue should be able to comment on the change they see in the preview and let user B know if they have met the criteria of their request. user A can definitely pay around with the deployed API that contains the fix. |
Interesting; Parse Server has options that are provided on start-up; some of the features depend on the options set. How would that work? I assume the Parse Server that is spun-up would only have the default options set? |
Also, how does this compare to Gitpod.io? Is that a similar concept? |
@mtrezza we can figure out a solution where you can spin up the parse server and test it with whatever options you would like to. We have another ongoing PoC where we are testing this out. It’s important to not that Gitpod is for development environments in the cloud, whereas Uffizzi sits helps create previews of the Pull Requests specifically is designed for the maintainer primarily. |
I can see how this would be beneficial for a low-config and primarily visual product like Parse Dashboard. I'm still unsure how this would practically work for a high-config and primarily non-visual product like Parse Server, where behavior is much depending on a complex combination of config start-up options and very specific test data in the DB, and it's not something the user can necessarily test in a UI. Let's take a random open PR like #8337 for example. How would this assist in developing that PR? |
@mtrezza, really appreciate the logical questioning. Going by the example of the PR you mentioned (#8337): How would testing and approving the change look without Uffizzi?
How would testing this PR look like with Uffizzi Previews (or any PRs where the changes are not necessarily easy to test through UI)
|
Please correct me if I don't grasp this right, but our contribution and review process works very different and more automated than how you describe it.
A maintainer (or reviewer) should never do any testing on their own. Neither with a local clone of the PR, nor against an environment that is spun up by Uffizzi. Such custom tests would be outside of the CI, non-repeatable and undocumented. Our policy demands that tests are an integral part of the PR. In other words, we wouldn't want a reviewer to do their own testing, neither would it be feasible for an organization of our size. We have a clear separation of roles. A contributor's role is to write a code change, manually test it and write repeatable CI tests as part of their PR. A reviewer's role is to ensure that the tests cover the change sufficiently, not to do manual testing.
We do not have a seeded database for testing. A test (group) seeds the database as part of the test definition. This is important, so a test can start with an empty DB and for the tests not to influence / depend on one another. No pollution there.
I don't see this corroborated so far. Quite the contrary. The contribution and review process you described seems to involve more manual steps and blur roles and separation of tasks between contributor and reviewer. Again, the only benefit I see so far is a for a visual product like Parse Dashboard, where we don't have UI tests (yet). A reviewer could look at the more subtile UI changes, which is something a UI test can hardly evaluate. So even if we have UI tests (for which we have an open issue there), just taking a quick look at UI-related changes could be beneficial for process and save the reviewer some time. |
Hi @mtrezza Based on the discussion, here's what I would propose. We can close this PR to parse-server and open a PR to parse dashboard - which sounds like would provide the most value to your project now. If this turns out to be beneficial, we can look at evolving the capability to facilitate some additional testing layers like interface to database and/or front end automation testing across both repositories - as it makes sense with your project goals. How does this sound? cc @ShrutiC-git |
Sounds good, thanks for chiming in. |
Closing as use case for Parse Server not established |
New Feature / Enhancement Checklist
Current Limitation
There are no previews for Pull Requests on the parse repository.
Feature / Enhancement Description
On every PR to parse-server, create an Uffizzi Preview of the parse server which runs against an instance of the parse-dashboard and an instance of mongodb. This will require the repo to be configured with Uffizzi.
Example Use Case
Alternatives / Workarounds
3rd Party References
I would like to make life easier for Parse maintainers by implementing Uffizzi previews.
Disclaimer: I work on Uffizzi
Uffizzi is a Open Source full stack previews engine and is completely free for Parse (and all open source projects). This will provide maintainers with previews of their PRs in the cloud, allowing them iterate faster and reduce time to merge.
TODO:
The text was updated successfully, but these errors were encountered: