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 install notes for classic ui, pip and buildout method #1701

Draft
wants to merge 10 commits into
base: 6.0
Choose a base branch
from

Conversation

1letter
Copy link
Sponsor Contributor

@1letter 1letter commented Sep 12, 2024

@1letter
Copy link
Sponsor Contributor Author

1letter commented Sep 12, 2024

@petschki @MrTango @stevepiercy
here my first proposal for quick installation instructions via pip or buildout

@1letter 1letter linked an issue Sep 12, 2024 that may be closed by this pull request
@stevepiercy
Copy link
Contributor

@1letter thanks for the quick contribution!

I quickly scanned the PR, and I am left with the question of what can the developer do next with the installation? I assume options include:

  • just play around with the installation
  • create a project
  • Contribute to Plone (maybe not this, because we recently published extensive documentation for that)

Please let me know. Thank you!

@stevepiercy
Copy link
Contributor

See also #1353

@1letter
Copy link
Sponsor Contributor Author

1letter commented Sep 13, 2024

  • just play around with the installation
  • create a project

This two points are valid. The instructions are only for "how can i quick install Plone", not more intensions by me. Perhaps @MrTango has an idea. The purpose to document this steps come from him.

@1letter
Copy link
Sponsor Contributor Author

1letter commented Sep 16, 2024

@stevepiercy can you review the wording and the spelling of the new content in this chapter, please?

@MrTango i use my own simple "installer" script for a zeo installation. should this go to the official docs, i'm not sure?

@stevepiercy
Copy link
Contributor

Before I can review this PR, I still need more context. Documentation must be approachable for newcomers.

Why would I choose one installation method over another? I don't want to publish a method without a reason to use it.

System requirements must align with what is officially supported for Plone 6.x. 6.0 supports Python 3.8 - 3.12. 6.1 supports 3.10 - 3.12. https://plone.org/download/release-schedule.

Are there advantages or disadvantages to one method over the other?

What is this ZEO server stuff? Do I need it? If so, then why?

Why should I choose a ZEO server via client installation versus a cluster via systemd?

@petschki
Copy link
Member

Buildout vs. pip

zc.buildout is a python based installation approach which helps you with "recipes" to automate development and productive installations. But it is kind of a "plone community only" approach, so reading https://github.com/plone/buildout.coredev/blob/6.1/README-make.md#using-the-makefile-in-buildoutcoredev there it says:

Buildout is not well known outside of the Plone world, and it can have problems when a new pip or setuptools version is released. So we are busy putting pip on the same level as Buildout for doing core development. See plone/Products.CMFPlone#3670.

When it comes to product development you need to mix stable package releases with source checkouts.buildout helps you with an extension called mr.developer while in pip installations you have to use mxdev to create the "requirements" and "constraints" for your python environment.

Advantages:

zc.buildout

  • mature and feature rich for plone development and productive environments.
  • Has several "recipes" to automate various installation tasks.

pip

  • known by a broad community.
  • Maintained and improved by the python community.

Disadvantages:

  • zc.buildout is only known and maintained by the plone community
  • pip needs more effort/knowledge to automate installations (like you're used to in buildout? -> I'm not using pip based installations on productive environements)

ZEO

The ZEO server is used to run the ZODB in a separate process where multiple Zope/WSGI clients can connect to. This is used to scale productive installations for high traffic sites to distribute the requests with a loadbalancer to more than one worker.

docs/classic-ui/install.md Outdated Show resolved Hide resolved
docs/classic-ui/install.md Outdated Show resolved Hide resolved
eggs =
Plone
```

Copy link
Contributor

Choose a reason for hiding this comment

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

i would add the following command, which creates the bin/buildout script, so venv does need to be used after that anymore.

buildout bootstrap

then deactivate venv and jut run ./bin/buildout when ever something in the buildout config has changed.

Copy link
Sponsor Member

Choose a reason for hiding this comment

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

@MrTango Are you actually using the buildout bootstrap command regularly? I was just wondering if I would remove this (and the buildout init command) in a new major version of zc.buildout.


Now you can call the url `http://localhost:8080` in your browser and you can add a **Classic UI Plone site**

Let's have fun with Plone!
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe also a zeo setup?

Copy link
Contributor

@stevepiercy stevepiercy left a comment

Choose a reason for hiding this comment

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

After #1714 is merged, then this documentation should be moved into /install and its index.md updated.

There's also a note that buildout is not documented in Plone 6, which will need to be removed.

Finally, I want to be absolutely clear with newcomer Plone developers that if they want to develop a project with Classic UI, then they must choose one method, either Cookieplone or buildout, and we should also declare one to be "preferred" and the other "deprecated" or "alternative". I'm heavily leaning toward Cookieplone as "preferred".

In any case, experienced developers will do whatever works for them, and this PR will serve as a resource for many of them.

./bin/instance stop
```

Your instance starts in foreground mode, which is only advisable for troubleshooting or for local demonstration purposes,
Copy link
Contributor

Choose a reason for hiding this comment

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

OMG, after all these years, I now understand that fg represents "foreground"! I thought it meant "fucking great"!

docs/classic-ui/install.md Outdated Show resolved Hide resolved
@stevepiercy
Copy link
Contributor

@stevepiercy
Copy link
Contributor

Finally, I want to be absolutely clear with newcomer Plone developers that if they want to develop a project with Classic UI, then they must choose one method, either Cookieplone or buildout, and we should also declare one to be "preferred" and the other "deprecated" or "alternative". I'm heavily leaning toward Cookieplone as "preferred".

Per #1714 (comment) we need both install methods documented.

We also now have some new structure in the docs where this PR can be moved. I'll update the PR accordingly.

Copy link
Contributor

@stevepiercy stevepiercy left a comment

Choose a reason for hiding this comment

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

This is a good first pass, but I'm stuck until I get more direction from y'all.

Examples include the following.

- pip based install method
- buildout based install method
Copy link
Contributor

Choose a reason for hiding this comment

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

I would remove the above section and break apart this file into two new pages:

  • Install Classic UI via pip
  • Install Classic UI via buildout

Let's have fun with Plone!


### Example to start the instance via systemd
Copy link
Contributor

Choose a reason for hiding this comment

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

I am not sure why the following three examples are in "Install". Aren't these configuration items for how to manage an instance, not install one?

If so, we have a new home for such stuff in Manage Plone. The content currently only has Cookieplone based stuff, and we can add buildout and pip based stuff as needed. Please let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Status: In Progress
5 participants