Ticket #12235 (closed PLIP: fixed)

Opened 5 years ago

Last modified 4 years ago

Unified batch implementaion

Reported by: tom_gross Owned by: tom_gross
Priority: minor Milestone: 4.3
Component: General Version: 4.1
Keywords: Cc:

Description (last modified by tom_gross) (diff)

Proposer: Tom Gross
Seconder: N.N.

Motivation

At the moment there are multiple batching implementations in Plone:

  • CMFPlone/PloneBatch.py
  • plone.app.content
  • z3c.batching (via plone.z3cform)

Having these batches makes it difficult to maintain a common ui and usability. Furthermore it is hard for 3rd party product development to choose the right one to integrate.

Proposal & Implementation

Extract the batching mechanism and put it in a separate egg (plone.sequencebatch?) and point all other occurrences to this location. This makes it easier to maintain a common UI and development API. A separate batch implementation could in a later step respect internal features of the ZCatalog or 3rd party data providers (e.g. Solr) and provide a better performing solution.

The implementation should merge the code from PloneBatch and plone.app.content and get rid of the z3c.batching dependency, which is not integrated into the Plone styling and behavior in any way.

Deliverables

The plone.batching egg, which is based on BloneBatch and the plone.app.content implementation. The API of the batching has to be be documented well for 3rd party development and styling.

Progress

Idea and code analysis.

Risks

We risk to confuse 3rd party product developers by providing "just another" batch implementation. It is part of the PLIP to replace all other batch implementations in favor of the unified one.

Participants

Tom Gross - tom_gross (irc.freenode.net)

Change History

comment:1 Changed 5 years ago by eleddy

FWT says: go for it! (4.3)

comment:2 Changed 4 years ago by tom_gross

  • Description modified (diff)

comment:5 Changed 4 years ago by eleddy

Main thing missing on accepting this plip is documentation. You should have 2 reviews so please check those out and let us know if you have any questions and when the rest is ready.

comment:7 Changed 4 years ago by eleddy

  • Version set to 4.1
  • severity set to Untriaged

How is the documentation for this plip coming? we would like to prep it for merge

comment:8 Changed 4 years ago by tom_gross

I sent you and alec mitchell an email but it seems cc-ing it to plone-dev removed the other recipients :(

So here is the current status (see also my email  PLIP 12235 plone.batching to plone-dev):

  •  The legal issue is fixed. The package is licesend ZPL 2.1 now.
  • The batchformkeys-issue is fixed too. I reimplemented the feature.
  • I'm working on the documentation. One part is  available on github already but the majority is not pushed. I think I can finish and push the draft this week.
  • The usage of the __len__-method is still open for discussion (see email).

comment:9 Changed 4 years ago by tom_gross

Update 2: I just  pushed the documentation of the plone.batching package I have. Except from the __len__ issue all open points from the reviews should be fixed.

comment:10 Changed 4 years ago by alecm

Excellent. You've got a +1 from me then.

The len issue is a little hairy, but essentially unavoidable. However, all deprecated use of that method within the core should be fixed before release. I don't think it needs to happen before the merge, but that should probably be up to the release manager. It may be easier to track down and fix the warnings after the merge, to avoid creating a bunch of single fix branches of packages.

comment:11 Changed 4 years ago by kleist

  • Status changed from new to confirmed
  • Component changed from Infrastructure to General

Confirming, just to clean up the report "Untriaged Tickets".

comment:12 Changed 4 years ago by esteele

  • Status changed from confirmed to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.