Hello everyone, I am Avi. Computer science engineering student and front-end intern working in the react framework.
I wish to contribute to the Plone community under GSoC and beyond. My motivation for contributing to open source is to explore different codebases/stacks and write more readable and structured code.
Have cloned the Volto project. Now going through v5 training documentation.
Hi again, I have been researching the Plone organization, especially Volto. My goal is to start contributing to the Volto project. Firstly, I want to ask the community members whether I am on the right learning path? So far, I have gone through the following:
Not able to understand the Hot Module Reload (HMR) functionality. What type of changes does it support? And when do I need to restart the server (manually)?
Do I need to know about docker commands too? Or can I just run the commands in an abstracted way?
I also have some feedback to make the React training documentation even more beginner-friendly. Being a newbie to Open Source, I am not sure how to present feedback. So, sharing this google doc.
Hi @avimishra18 – thanks for doing this learning already!
The Plone API is a layer that we introduced in the code to make it easier for developers to do things using only one accepted way. In the past, Plone has often had more than one way to do something. The Plone API is intended to expose the one "best" way to do those things.
The REST API is the usual JSON mechanism for allowing external systems to communicate with Plone.
Your feedback is more than welcome! Last year we introduced a link on every training page for opening an issue. Opening an issue with a pointer to the training and the page of the training helps to address the trainers that authored the text.
Thanks in advance!
@avimishra18 Answer to your 2nd question:
Volto uses Razzle - a library which has out of the box features to build server rendered applications. Razzle has built-in HMR through webpack. Though we can customize it through razzle.config.js.
By default, it looks for folders inside src/** as modules and server reloads on changes. For backend you can use any of the provided buildout, or new pip based installation of Plone 6.
I have just a brief idea about docker containers and images. I wanted to ask how much knowledge of docker is required for Volto?
These are some of the commands in the Volto/Readme.md basically to run Plone (backend). Reading about the CLI commands with their options from Docker documentation.
Ah, so does it means whenever I make changes in the theme/** folder, I need to restart the server.
I am using the Bootstrap the Plone API backend command i.e. docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.restapi==8.18.0 plone.app.iterate==4.0.2 plone.rest==2.0.0a1 plone.app.vocabularies==4.3.0 plone.volto==3.1.0a7" -e PROFILES="plone.volto:default-homepage" plone/plone-backend
Please search for existing issues in the Plone Training GitHub repository. If the issue does not exist, then create one for each item in your Google Doc.
Do I need to sign the agreement for contributing to the Training too? It's a little confusing as the agreement page states that's only for Core Plone/Zope projects.