"LTS" Py4Web?

48 views
Skip to first unread message

Nazywam się Witek

unread,
Oct 15, 2025, 7:04:53 PM (3 days ago) Oct 15
to py4web
Can we create a version of py4web with long-term support (and DAL)—with its issues, but with code that doesn't change much—that I can fix with minor security patches or minor bug fixes? I need something stable for my own project customization over the long term. Ideas are great, but they lead to chaos, and I don't know at what point I'd consider this a version I want to customize to the specific project requirements "for the long term." For example, 3-5 years?

Alan Etkin

unread,
Oct 16, 2025, 7:22:02 AM (3 days ago) Oct 16
to py4web
py4web is released periodically with version numbers. I think that instead of LTS there should be some repo with releases by number so when you find your app code broke by a change you can revert the framework code to the working version. I'm not sure if this can be handled directly with GitHub versioning, if so, then it's just about maintaining py4web code with the correct version.

Regards

Alan

Massimo DiPierro

unread,
Oct 17, 2025, 2:44:02 AM (yesterday) Oct 17
to py4web
I think pending some tweaks to custom widgets that will be settled soon, I think py4web is already very stable. I agree with Alan but I also see the pros of an LTS version. I will consider that as soon as we have closed the reamining pending PRs. Very soon.

laundmo

unread,
Oct 17, 2025, 9:52:02 AM (yesterday) Oct 17
to py4web
I would recommend relying on standard python and git tools to stay on one version:

- If you don't need to modify py4web/pydal source, use python dependency management to pin your project to a specific version: in requirements.txt or pyproject.toml specify py4web==1.20250921.1
- If you need to modify py4web/pydal, fork the git repositories for your own modifications: on github, click on the "fork" button at the top. Then git clone your fork, and run "git reset --hard <ref you want>" - the ref can be a commit hash or a git tag. There should be a tag for each py4web version. Make your changes, git commit them and then git push them. Then, specify your own fork in your dependencies like this: py4web @ git+https://github.com/<your_github_username>/py4web

If you make a fork, and your changes could be useful to the main version, you can also make a Pull Request, to ask massimo to add your changes to the main repository/version.


Alan Etkin

unread,
Oct 17, 2025, 10:37:41 AM (yesterday) Oct 17
to py4web
>There should be a tag for each py4web version.


Even you can download the source of each tag to deploy it

Nazywam się Witek

unread,
Oct 17, 2025, 7:21:46 PM (yesterday) Oct 17
to py4web
Thanks for the tips. But Massimo seems to have understood my point best.
It's similar to the current web2py. I want to slightly modify the py4web code using classes inheriting from ~from, grid, and/or monkey patching.
I want to discover the source code in detail (memorize it in my head) and write code based on what I know—even if I know something isn't working properly.
However, sometimes bugs are discovered, for example, security bugs (~XSS, etc.). I'm not an expert in everything.
What's my option then?
Do I have to migrate to the current patch release? (Will numbered versions receive patches?)
How can I do this with ~100,000 lines of code/~200-300 tables, major changes to the current version, and a critical project?
The "LTS" release would be a stable (frozen) version where I could expect some (hopefully) support in fixing a small piece of code. Nothing revolutionary.
If the version cannot be repaired - information ~LTS version 1.0 cannot be (easily) repaired - migrate to version 2.0 or live with CVS awareness.

Reply all
Reply to author
Forward
0 new messages