The incredible and sad tale of innocent Plone 5 and its heartless add-ons

Well, discussion culture in Plone isnt that bad, I dont want to write much about, just that I like tough discussions if they are stuck to facts and are not on persons (oh yes, I'am one of theses Germans, even if I live in Austria...). Also often different points of view are valid in their area - it depends really on how you use Plone.

Back top the topic:

Wriitng Plone addons is difficult and it should be easier. We're fighting with a bloated stack full legacy and unused code. On one hand we want to get rid of the old stuff - and yes this will break addons at some point and needs a split-development - and I'am ok with this approach. Plone 5 changed a lot, but hey, its a major release.

OTHO we need stability. This means to not rewrite all the themes, all the addons every major release.

Also we need to improve. We need to make the Javascript/CSS story better and I'am sure the PLIP by @ebrehault helps here. Dexterity needs an API. Btw.: foundations are set - also there is an branch with an basic implementation of our idea. But we didnt found time to discuss this to the end. But It wont be an AT API and IMO this is perfectly fine.

There are other fields we're Plone can improve. But the number of core contributors are small because complexity of the problems raises as deeper you dig into Plone and Zope.

I encourage everybody to contribute to the core. Small enhancements - primary bugfixes or non-immersive changes - are merged fast if tests are passing. Features needs PLIPs. This is more work, but a chance for everybody to improve Plone on a larger scale. Submit PLIPs - and work on them: dont expect anybody else will. But you will get help in case of questions or if you stuck.

My perception is that Plone is in serious lack of manpower!
And manpower, i.e. people availability, is the most important ingredient to a sucessfull open source project.
I don't know the reasons for this, but I think that Plone 5 was a too much big step, maybe it was a better option to refine and polish the 4.3x series and call it Plone 4.5 ??
Having not used Plone for more than 3 years, since P4.1, I feel that Dexterity is a half baked solution, as is also the Js/Css story in P5, among other things.
maybe I'm wrong, but, if in the old days Plone was already dificult for a newcomer to learn, now with P5 it is just impossible.

Well, I am really not that pessimistic.

I am pretty sure Plone 5 is much easier for a newcomer than Plone 4:

  • creating content types is easier, it can be done in Python (as it used to for Archetypes), or just by providing an XML model (so that's similar to what Archgenxml offered, but that's integrated and does not necessarily imply to generate an egg), and it can be done TTW (we can design a content-type from the Plone interface, and then import/export it),
  • theming a Plone site is way much easier now, using Diazo it can be done entirely by a non-Plone developer,
  • a tool like Rapido http://rapidoplone.readthedocs.org/en/latest/ can be very helpful for a beginner to start customizing Plone without learning about all its internal frameworks.

And regarding manpower, we might have less contributors, but I think we made a big effort on sprints, the Plone Foundation is financing some of them, and there are now more sprint every year than it used to few years ago, and Plone core development is doing very well.

2 Likes

Plone still has quite a few core contributors. Especially compared to other projects.

What it might lack is core contributors to accomplish all the goals of the non-core contributors that are asking for specific features/things to get done. I've done a lot of work on the project but I work for me, my company and to an extent, the friendships in the community I've fostered over the years. I'm not going to spend all my time working on things that other people feel are important and I do not though. @JotaMG For instance, I think you'll be hard-pressed finding people to implement your desire for there to be no JS in a world where JS is so popular.

So @JotaMG thinks Plone 5 was too ambitious and @hvelarde thinks Plone 5 doesn't have anything new worth anything. Another example of how you can't please everybody.

The project is trying to do the best it can with the core contributors that are willing to put their effort into the project. The project is steered mostly by people and companies that are willing to contribute features they consider useful--those that are willing to do the work.

@JotaMG Why do you think Dexterity is a half-baked solution? This is very surprising to hear after using Archetypes for many years. The one problem I see with dexterity is the field value accessor problem for behaviors that do not use attribute storage. Having to use an adapter(behavior) to get/set values can be annoying.... But then again, it's use of behaviors is incredibly powerful.

1 Like

I miss the upgrade guide. I did not complain so far because I had no interest in a harsh reply from some thin skinned people. I understand that a lot of big changes have been done by too few developers, but that the plips got through without any upgrade guide was wrong.
Personally I consider Plone infrastructure and not feature ware nowadays.

Apart from that, I absolutely love dexterity, I don't mind at all that accessing some attributes has been changed. Handling this does not belong in complex app logic anyway, that is what adapters are for and we know quite well how to write these. :smile:

1 Like

Nicely said.

Let's try to harness some of the energy used in pointing out problems or areas of improvement; after a certain point, we don't need just talk but we need contributions in terms of documentation, tests, code, designs, organization.

So @JotaMG would you like to propose improvements (e.g. file issues perhaps)? @do3cc would you like to help with the upgrade guide?

1 Like

hi! a guy with thick skin over here...

I agree with @JotaMG in one point: Plone 5 was a too much big step; I have stated that before and I maintain it; nevertheless, I understand the historical reasons for that.

I never said "Plone 5 doesn't have anything new worth anything"; what I said is: selling an upgrade to Plone 5 is difficult because most of the features we are marketing are not really new, are achievable in Plone 4 or are simply the result of technical evolution of parts of the stack. If you guys are able to sell upgrades with this, congratulations; in Brazil we are not and seems that neither in Germany.

So, @vangheem, be more careful and don't go changing what people say to make a point; that's not fair... anyway, that's nothing a pint of beer couldn't resolve.

Finally, I agree with @tkimnguyen, let's put more energy on solving the problems.

As I said before, in many aspects P5 feels like a diferent beast from the Plone I used to know, and I don't have the time and energy to learn everything new, BUT, if someone is also interested in having a lighter theme to Plone, with just the minimal Js and Css, I will be happy to help. I just will not start anything myself.

I wonder why Plone does not have a default OTB theme like Drupal 8:

Anonymous: 85 KB
1 Document 4 KB 16 KB
4 Images 10 KB 10 KB
0 Objects
0 Scripts
3 Style Sheets 13 KB 60 KB
8 Files 27 KB 85 KB

Loged-in: 711 KB
1 Document 6 KB 25 KB
5 Images 10 KB 10 KB
0 Objects
3 Scripts 153 KB 562 KB
7 Style Sheets 22 KB 114 KB
16 Files 191 KB 711 KB

That is eficiency and elegance!

Plone has other problems than the size of CSS and JS.

-aj

I wish I would find the required time for it. Working on this requires concentration for more than a few minutes. I could use the sprint next week to work on this. After all, I started to work on this a few months ago but did not find timeslots to continue working on it https://github.com/plone/documentation/tree/do3cc-upgrade-z3cform
Apart from that I must say that writing docs for new features, having to reverse engineer these new features, is even less satisfying than making broken tests of badly maintaining packages work again.

Hi,

I have created an example to show how to make a Plone4/Plone5 compliant add-ons (focusing on the JS/CSS aspect):

As you can see it is very simple. Resource registries are just as simple as our old cssregistry or jsregistry used to be.
I hope it will help @hvelarde, @JotaMG and @zopyx to have a better opinion about it :).

If you see other interesting aspects to append to this example, PR are welcome.

2 Likes

thanks, @ebrehault, that's the way to go!

there's a problem with your implementation: as you can see, resources are not being registered neither in Plone 4, nor in Plone 5:

do you mind to fix this?

Hi @hvelarde,
I have just pushed new tests which manage installation properly (I haven't processed uninstall for now).

well, it looks broken on travis, I need to dig a little bit more

1 Like

ROFL, now you feel the pain!

Don't say that, the plone4/plone5 compliancy was a piece of cake.

The hard part is the stupid test thing, as always...
(by the way, did your nation psychology chart mentioned French people are particularly dishonest? :slight_smile: )

Ok so that's fixed now and tested (and that was not painful :slight_smile: ).
And I have also implemented a post-install step so we automatically import the version specific profiles from the default profile.

not so fast, McGruff!

that's the problem with you, people that don't write tests; your implementation has multiple problems:

  1. I have to manually run different steps to install resources under Plone 4 and 5; that will surely lead to users inadvertently skipping that step and ending with a broken site (ok, I saw you already fixed this one)
  2. I have to manually run an step to uninstall the resources in Plone 5: users will end again with a broken site

all of this has to be automatic; I'm not sure about the best implementation.

at least we have now a starting point.

i made a pull request, which should fix these problems: https://github.com/collective/example.p4p5/pull/5

As a U.S. guy, I'm crushed we scored so low on the confrontational
and emotionally expressive scale. We look so damn boring on the cool map! Let's see if I can move the U.S. up on these scales with some of my comments. :slight_smile:

First, I am not trying to antagonize anyone, knock Plone or believe my views are all-knowing. I am trying to give a different perspective (site admin) from the developers on this community.plone. If by chance anything really annoys you, let me know. Also, this is a long post.

Second, I am not a programmer I am a self-described site admin and have been working in Plone off and on for 5 years or so. However, I have a very good understanding as a Site Admin. Through the years, I’ve: taken the training classes from Joel Burton, delved deeply into the Plone code, designed and had built a document management product, and even wrote some simple archetype products. So, I am not on your level of knowledge; however, I do understand many of the Plone issues.

Third, we are most concerned with what impacts our world, so I state up front I don’t have a dog in the fight you folks are discussing. So, my comments from here on acknowledge a lack of knowledge of these deep level topics, except to say: Some smart, well-intentioned people made these design decisions: It's time to move on and identify Plone issues we can improve.

The emperor fiddles while Rome burns.

Plone is losing relevance, especially in the U.S. market. I state this because:

  1. The number of Plone user groups has fallen off a cliff. Seattle use to have a strong group (20 plus people each month). Now Seattle has no group at all. I went to: https://plone.org/support/user-groups. The first three groups I clicked on (L.A., Atlanta and New Mexico) they were not active groups. For the first two there was no site anymore, the third the latest update was a few years ago.

  2. Do a search for Plone programmers (real ones, not people who claim to be Plone programmers because they know python). Ain’t that many, again, especially in U.S.

  3. My hosting site (WebFaction) has one click installers for many products (including WordPress and Drupal). They use to have one for Plone but they deleted it. Support told me they got no demand for Plone sites.

  4. Do a simple Google search: Plone (3.4 million hits); Drupal (74 million
    hits). Yeah, 25 times as many!

Finally, what is my issue? Simple: Functionality that will help make admins look good by giving them the tools they need to allow them to meet the needs of their users without repeated trips to a developer. Users and admins are the final customer and should be the focus of what is done with Plone. If it satisfies a need for them, it will likely help Plone and create paid work for developers.

Towards this goal I think Plone 5 brings many improvements to the user/site admin. For example, we can now easily change the account creation form (hard as hell in P4). Creating content type with dexterity is much simpler. The P5 interface is cool. However, two examples of areas open for improvement:

a) Dexterity is a big step forward from a site admin view. It allows us to create some reasonably robust products quickly. However, as an example of how the loop isn’t closed, when you create a form and add a field set, Dexterity doesn’t keep track of what widgets are added to the new tab. All widgets are added to the default tab. With the help of @cris, I learned how to edit the xml file to move the widget to the proper tab. Why? I can’t believe it is technically difficult for Dexterity to be aware of what tab the person is working on when adding content. I understand that Plone may not control this action of Dexterity.

b) Two very common requirements of a CMS, i) being able to set publish and end dates, ii) sending reminders to users of upcoming events, are either non-functional or details are hidden that I can’t find.

i. When I add content and use the ‘publish’ dates. I don’t see them as working. I have a site (mckennariley.webfactional.com) where, as a test, I changed the publishing date of the homepage to a future date. So why is the page still visible to users? Quite a while back @cewing explained it to me and, if memory serves, said using a cronjob to run a wget to refresh the page would do this. Don’t’ quote me. This feature must work. How do I do it? (I have previously posted this and Kim said it works for him. What am I missing)

ii. For the reminder to be sent, I am working with Plone product for crontab and the “upcoming content rule” add-on. (Trouble install crontab). I can get crontab working, but still issues prevent me from getting it to work. Thanks to the people who wrote these two products; however, we need to get it the final mile to get it to work.

For each of these products, I’ve done a lot of testing and would be glad to share all my notes with anyone interested. I am not just complaining, I am digging it, finding issues, and wanting to help fix it to improve Plone for all. For example, I am paying someone to get an important content rule (emails to group) to be updated to P5. Alternatively, after looking at the code, I proposed a possible simpler solution. If you’re interested, see:

Using Plone Rules to send emails to users based on roles - #21 by rileydog

I also maintain that for Plone to separate from the pack it needs a much better use case for document management (Document Managment - #8 by zopyx) and WebDAV (Webdav file upload content type issue in Plone 5 · Issue #1237 · plone/Products.CMFPlone · GitHub)

The people posting have in-depth knowledge, so I don’t question the details for their use case. However, I have used Zope External editor and found it to be reliable for ‘moderate’ use. Based on this, let me propose a use case that I think Plone could be a viable document management system for organizations less than 100 or so people. WebDAV is key to document management (e.g. Basecamp doesn’t offer it and makes document “management” a total kluge.). If the windows WebDAV is a real problem why not find a good WebDAV client that can be purchased and allowed to connect to Plone?

For Plone 3, I created a product that allowed project managers to more easily manage key documents. Using Word and templates, they would create a document (e.g. project meeting minutes), when done, they pressed upload. The tool, based on content type, automatically created proper file properties (metadata), automatically named the file, posted to the proper upload folder in Plone. Then, a parsing tool took over, parsed the Word file for properties (metadata), based on these properties, created a new content type, extracted the meeting date, meeting members, etc. and created a new content type. Finally, the action items included in the document were parsed and a new instance of the action item created on the site. The user didn’t do anything except create the document with a hand Word template. Try that with Drupal!

Plone is a beast to learn. We know that. If we add another robust reason for using Plone, like document management, we make Plone dramatically more useful. I know for the large organizations, they would want to full-blown DM solution. However, the vast majority of organizations are not large. Let’s help them.

I know this was long. Hope it was worth reading.

So, thoughts anyone?

2 Likes