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

Prepare for release of Plone 5.2a1 with python 3 support #2592

Closed
pbauer opened this Issue Oct 12, 2018 · 23 comments

Comments

Projects
8 participants
@pbauer
Member

pbauer commented Oct 12, 2018

Here we discuss and collect all tasks that need to be done before a 5.2a1 release.

Please add additional tasks that are a hard requirement for a release of Plone 5.2a1.

@pbauer pbauer added this to the Plone 5.2 milestone Oct 12, 2018

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

The failing tests in plone.restapi are all from TestBatchingArchetypes and they fail together with the robot-tests in plone.app.widgets. Even when I strip everything from the tests and the testsetup of the robot-tests in plone.app.widgets it fails.
To reproduce:

./bin/test --all -s plone.app.widgets -s plone.restapi -t test_datetime_widget.robot -t TestBatchingArchetypes

@pbauer pbauer added this to Open in Python 3 Oct 12, 2018

pbauer added a commit to plone/plone.restapi that referenced this issue Oct 12, 2018

@Rotonen

This comment has been minimized.

Contributor

Rotonen commented Oct 12, 2018

The filedescriptor leaks should also be tackled for testing stability. I'm having a feeling currently the Robot tests can get stuck when hitting an ulimit and the test setup machinery not handling that scenario.

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

I skipped the tests in TestBatchingArchetypes but then next tests TestATContentPatch failed. It seems the first tests in plone.restapi.testing.PloneRestApiATLayer:Functional fails but consecutive tests do not fail. I tried to add a dummy Test-Class that is run before the others in the hope that the teardown of that would fix consecutive TestCases but that was no successfull. I'm currently at the end of my wits here.

@Rotonen

This comment has been minimized.

Contributor

Rotonen commented Oct 12, 2018

Run those quick runs with --shuffle and -vvv to see if the ordering between failures and successes pinpoints the correct leaking test, testclass or layer execution and/or setup/teardown out for you.

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

For the failing tests plone.rest.events.mark_as_api_request is never hit 😟

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

Could I buy me a clone of @davisagli for all the times that I run into these soul-crunching issues?

pbauer added a commit to plone/plone.restapi that referenced this issue Oct 12, 2018

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

I added a crazy workaround for the issue in plone.restapi: plone/plone.restapi@23fad9a

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 12, 2018

And... we are green!
green

@thet

This comment has been minimized.

Member

thet commented Oct 12, 2018

wohoo!

@pgrunewald

This comment has been minimized.

pgrunewald commented Oct 12, 2018

Great news!

@davisagli

This comment has been minimized.

Member

davisagli commented Oct 13, 2018

Oh dear -- I'll try to find a chance to look at the plone.restapi failure soon. Glad it's green though!

@tisto

This comment has been minimized.

Member

tisto commented Oct 13, 2018

@pbauer if p.a.widgets tests bleed into p.restapi tests why don't we just move the package to the test-isolation issues group in buildout? If we start to write that kind of work-around tests we just make things worse IMHO.

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 13, 2018

@tisto the whole alltests-thing will be gone and the test-isolation group as well. We're running tests with ./bin/test --all because we fixed almost all test-isolation issues.

@tisto

This comment has been minimized.

Member

tisto commented Oct 13, 2018

@pbauer wow, ok. That's great news! Never thought that the work I started many years ago actually would come to an end at some point. :)

Though unfortunately being able to run "bin/test --all" just means that we currently do not see test isolation issues in the specific order we run the tests. The test isolation issues are still present.

If we now start to fix the problems of one package in another package, we risk that their test fixtures are tightly coupled to each other and we might even not be able to run their tests successfully individually any longer. Since Jenkins only runs "bin/test --all", we might not even detect that package tests don't pass individually any longer.

Therefore keeping alltests might be a better option than writing tightly coupled test fixtures. I don't have a single simple answer to this complex problem. Maybe the way zope.testrunner optimizes the test fixture is just wrong in the first place...

@lukasgraf

This comment has been minimized.

Member

lukasgraf commented Oct 13, 2018

I've looked into the plone.restapi failure last night.

The failure in plone.restapi happens because the subscriber registration of the mark_as_api_request for IPubStart seems to vanish when a robotframework test like the one from p.a.widgets runs before it.

This is the difference I'm seeing (all from inside a waitress request handler thread):


Passing test (just running the plone.restapi test alone):

(Pdb) sm = getSiteManager()
(Pdb) print list(sm.registeredHandlers())
[HandlerRegistration(<BaseGlobalComponents test-stack-3>, [IPubStart], u'', mark_as_api_request, File ".../plone/rest/configure.zcml", line 8.2-11.6)]

=> Site manager contains the event subscriber registration. Good.

Failing test (first the robot test from p.a.widgets, then the plone.restapi test):

(Pdb) sm = getSiteManager()
(Pdb) print list(sm.registeredHandlers())
[]

=> Registration is missing.


When I further inspect which exact stacked component registry instance we're working with, I see something strange:

Passing test:

(Pdb) sm
<BaseGlobalComponents test-stack-3>
(Pdb) from plone.testing import zca
(Pdb) zca._REGISTRIES
[<BaseGlobalComponents base>, <BaseGlobalComponents test-stack-1>, <BaseGlobalComponents test-stack-2>, <BaseGlobalComponents test-stack-3>]
(Pdb) zca._REGISTRIES[-1] is sm
True
(Pdb) id(zca._REGISTRIES[-1]), id(sm)
(4586995088, 4586995088)

=> The current site manager is the last one from plone.testing.zca's component registry stack. Good.

Failing test:

(Pdb) sm
<BaseGlobalComponents test-stack-3>
(Pdb) from plone.testing import zca
(Pdb) zca._REGISTRIES
[<BaseGlobalComponents base>, <BaseGlobalComponents test-stack-1>, <BaseGlobalComponents test-stack-2>, <BaseGlobalComponents test-stack-3>]
(Pdb) zca._REGISTRIES[-1] is sm
False
(Pdb) id(zca._REGISTRIES[-1]), id(sm)
(4652502480, 4583929552)

=> The current site manager is a different one than the last one from plone.testing.zca's stack, yet has the same name (test-stack-3) / stack depth number.


If we actually poke the last component registry from zca's stack (during the failing test), that's where our subscriber registration would be:

Failing test:

(Pdb) print list(zca._REGISTRIES[-1].registeredHandlers())
[HandlerRegistration(<BaseGlobalComponents test-stack-3>, [IPubStart], u'', mark_as_api_request, File ".../plone/rest/configure.zcml", line 8.2-11.6)]

This leads be to believe that there's an isolation issue around the component registry with the WSGIServer layer.

My hypothesis is this:

The reference to the current site manager is stored on the SiteInfo object in zope.component.hooks. SiteInfo is thread local. Since the WSGIServer layer starts its threads on layer setUp, and only tears them down at layer teardown, its threads start off with a SiteInfo instance after initial layer setup that is then detached from the main thread's SiteInfo (becomes thread-local) for the lifecycle of the layer.

That would then render plone.testing.zca's attempts to provide component registry isolation via its stacked configuration contexts ineffective, because its pushGlobalRegistry() / popGlobalRegistry() functions operate on the main thread's site manager, not on the waitress thread one's.

In an attempt to confirm this hypothesis, I changed SiteInfo to inherit from object instead of threading.local - and indeed, this did "fix" the test failure. I was also able to reproduce the test failure with other robot tests, not just p.a.widgets - the robot tests from p.a.multilingual or p.a.contenttypes cause exactly the same issue (if they happen to be run before the plone.restapi test).

/cc @davisagli

@pbauer

This comment has been minimized.

Member

pbauer commented Oct 13, 2018

@lukasgraf thanks for the excellent drill-down!

@Rotonen

This comment has been minimized.

Contributor

Rotonen commented Oct 13, 2018

@tisto I'm trying to get to a starting point for adding daily and weekly test runs to shake the testing stack harder to start finding those out. Additionally running each layer in parallel already passes and that's a pretty decent starting point, as the layer setups happen in isolation with both the zope.testrunner -j flag and the hacky mtest wrapper I'm toying around with.

https://jenkins.plone.org/view/Experimental/job/exp-parallel-tests/40/console
https://github.com/plone/buildout.coredev/blob/roto-testrunner-wrapper-52-py3/bin/mtest3

On the short to medium term I'm planning on doing something like:

  1. Do daily sequential --shuffle runs
  2. Do daily parallel --shuffle runs
  3. Do weekly sequential all possible package pairs runs
  4. Do weekly sequential all possible layer pairs runs
  5. Do monthly run every testclass alone runs
  6. Do monthly run every test alone runs

Don't worry, we'll get there.

Currently we're still dealing with basic stuff like hitting ulimit as the Robot test setups leak the FD of the socket, though.

@tisto

This comment has been minimized.

Member

tisto commented Oct 14, 2018

@Rotonen that all sounds fantastic! Thank you for taking this over!

@gforcada

This comment has been minimized.

Contributor

gforcada commented Oct 14, 2018

Regarding single package isolation, we can create a Jenkins job thatvruns only the package tests on every push on that package for each buildout.coredev branch, it should be trivial to wire that up with mr.roboto (tm)

@Rotonen

This comment has been minimized.

Contributor

Rotonen commented Oct 14, 2018

@gforcada can we do those as pipelines, which share the buildout filesystem? If so, that'd sound like the way to parallelise (and we could get rid of the weight plugin that way too). Don't know if the default should be to split the runs per package or per layer (or both).

But that's something for later, as we'd need to figure out the basics of running our tests reliably in any manner.

@tisto thank you for your neat and simple Robot tests, they clued me into Suite setup vs. Test setup.

https://github.com/kitconcept/robotframework-react/blob/master/tests/create-react-app/test.robot

Does not help to trivially make the Plone tests quicker, though, as most of our Robot suites are very short and we'll close the browser latest at the end of a Suite with how we currently run the tests and spawn the selenium server on demand per suite.

This can be split into two more keywords for suite setup and suite teardown:
https://github.com/plone/plone.app.robotframework/blob/f84d1a90851d69c09b362885ba7c18ed417c84ee/src/plone/app/robotframework/selenium.robot#L44-L51

And then every suite definition should amend to run those new keywords for suite setup and suite teardown.

https://github.com/plone/plone.app.robotframework/blob/f84d1a90851d69c09b362885ba7c18ed417c84ee/src/plone/app/robotframework/tests/test_autologin_library.robot#L9-L10

And we'll need to rearchitect and redesign and reprogram all the Robot tests to have very long suites instead of many short suites, if we want speed.

Or we go with some other technology than Robot. There's only about 100 end to end browser tests in total and the effort level of making them sane to run is about the same that way too.

This ticket has become a repository dump of miscellaneous testing trivia at this point.

@gforcada

This comment has been minimized.

Contributor

gforcada commented Oct 14, 2018

Let's move that to Jenkins.plone.org repo then

@pbauer pbauer moved this from Open to In Progress in Python 3 Oct 15, 2018

Python 3 automation moved this from In Progress to Done Oct 17, 2018

mister-roboto pushed a commit to plone/buildout.coredev that referenced this issue Oct 17, 2018

[fc] Repository: plone.restapi
Branch: refs/heads/master
Date: 2018-07-16T10:29:16-03:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@a31680c

fix imports and use decorators for py3

Files changed:
M src/plone/restapi/batching.py
M src/plone/restapi/demo/demo.py
M src/plone/restapi/deserializer/dxfields.py
M src/plone/restapi/deserializer/relationfield.py
M src/plone/restapi/pas/plugin.py
M src/plone/restapi/serializer/converters.py
M src/plone/restapi/services/content/tus.py
M src/plone/restapi/services/copymove/copymove.py
M src/plone/restapi/services/discussion/conversation.py
M src/plone/restapi/services/email_send/post.py
M src/plone/restapi/services/groups/delete.py
M src/plone/restapi/services/groups/get.py
M src/plone/restapi/services/groups/update.py
M src/plone/restapi/services/history/get.py
M src/plone/restapi/services/registry/get.py
M src/plone/restapi/services/types/get.py
M src/plone/restapi/services/users/add.py
M src/plone/restapi/services/users/delete.py
M src/plone/restapi/services/users/get.py
M src/plone/restapi/services/users/update.py
M src/plone/restapi/services/vocabularies/get.py
M src/plone/restapi/services/workflow/transition.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/helpers.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_error_handling.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:33:26-03:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@1c2d763

only test Products.Archetypes on py2

Files changed:
M setup.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/test_atcollection.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_atcontent_serializer.py
M src/plone/restapi/tests/test_atfield_deserializer.py
M src/plone/restapi/tests/test_atfield_serializer.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:42:00-03:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@0fe98dd

isolate from AT

Files changed:
M src/plone/restapi/__init__.py
M src/plone/restapi/deserializer/atcontent.py
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/serializer/atcollection.py
M src/plone/restapi/serializer/atcontent.py
M src/plone/restapi/serializer/atfields.py
M src/plone/restapi/services/content/add.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_content_patch.py
M src/plone/restapi/tests/test_content_post.py
M src/plone/restapi/tests/test_content_utils.py
M src/plone/restapi/tests/test_registry_serializer.py
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_serializer_catalog.py
M src/plone/restapi/tests/test_serializer_summary.py
M src/plone/restapi/tests/test_tus.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:42:00-03:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@77e36af

some py3 fixes

Files changed:
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_tus.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:43:31-03:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@d96bc03

a bunch of py3 fixes, mostly done with python-modernize

Files changed:
M src/plone/restapi/batching.py
M src/plone/restapi/imaging.py
M src/plone/restapi/search/utils.py
M src/plone/restapi/serializer/atfields.py
M src/plone/restapi/serializer/converters.py
M src/plone/restapi/serializer/dxcontent.py
M src/plone/restapi/serializer/expansion.py
M src/plone/restapi/serializer/registry.py
M src/plone/restapi/services/content/tus.py
M src/plone/restapi/services/content/utils.py
M src/plone/restapi/services/copymove/copymove.py
M src/plone/restapi/services/discussion/conversation.py
M src/plone/restapi/services/history/patch.py
M src/plone/restapi/services/multilingual/pam.py
M src/plone/restapi/services/users/add.py
M src/plone/restapi/tests/performance.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_atfield_deserializer.py
M src/plone/restapi/tests/test_atfield_serializer.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_content_delete.py
M src/plone/restapi/tests/test_content_get.py
M src/plone/restapi/tests/test_copymove.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxcontent_deserializer.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_dxfield_serializer.py
M src/plone/restapi/tests/test_expansion.py
M src/plone/restapi/tests/test_functional_auth.py
M src/plone/restapi/tests/test_registry.py
M src/plone/restapi/tests/test_registry_serializer.py
M src/plone/restapi/tests/test_serializer.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_services_history.py
M src/plone/restapi/tests/test_services_vocabularies.py
M src/plone/restapi/tests/test_site_deserializer.py
M src/plone/restapi/tests/test_translations.py
M src/plone/restapi/tests/test_tus.py
M src/plone/restapi/tests/test_types.py
M src/plone/restapi/tests/test_workflow.py
M src/plone/restapi/types/utils.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:43:31-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@45cd296

Fix old-division

Files changed:
M src/plone/restapi/imaging.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:43:31-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@6fc4723

Fix exception-message-attribute

Files changed:
M src/plone/restapi/deserializer/controlpanels.py
M src/plone/restapi/deserializer/dxcontent.py
M src/plone/restapi/deserializer/dxfields.py
M src/plone/restapi/services/users/add.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T10:43:31-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@ebb7a15

Refactor fix for old-division

Files changed:
M src/plone/restapi/imaging.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T12:44:15-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@e1b6615

Fix issues probably related with code rebase

Files changed:
M setup.py
M src/plone/restapi/services/content/add.py
M src/plone/restapi/tests/test_content_utils.py
M src/plone/restapi/tests/test_functional_auth.py
M src/plone/restapi/tests/test_tus.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T12:44:15-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@fcc1d17

Fix code analysis

Files changed:
M src/plone/restapi/deserializer/atcontent.py
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/serializer/atcollection.py
M src/plone/restapi/serializer/atcontent.py
M src/plone/restapi/serializer/atfields.py
M src/plone/restapi/services/content/add.py
M src/plone/restapi/services/content/tus.py
M src/plone/restapi/services/content/utils.py
M src/plone/restapi/services/types/get.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/test_atfield_deserializer.py
M src/plone/restapi/tests/test_content_delete.py
M src/plone/restapi/tests/test_copymove.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_workflow.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-16T12:44:15-03:00
Author: hvelarde (hvelarde) <hector.velarde@gmail.com>
Commit: plone/plone.restapi@5bfc404

Code clean up

Converting a dictionary to a list always return a list of keys, calling .keys() is unnecessary.

Files changed:
M src/plone/restapi/batching.py
M src/plone/restapi/serializer/dxcontent.py
M src/plone/restapi/serializer/registry.py
M src/plone/restapi/services/discussion/conversation.py
M src/plone/restapi/services/multilingual/pam.py
M src/plone/restapi/services/users/add.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_comments.py
M src/plone/restapi/tests/test_content_get.py
M src/plone/restapi/tests/test_expansion.py
M src/plone/restapi/tests/test_registry_serializer.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_serializer_group.py
M src/plone/restapi/tests/test_services_actions.py
M src/plone/restapi/tests/test_services_comments.py
M src/plone/restapi/tests/test_services_history.py
M src/plone/restapi/tests/test_services_types.py
M src/plone/restapi/tests/test_services_vocabularies.py
M src/plone/restapi/tests/test_translations.py
M src/plone/restapi/tests/test_types.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-07-18T10:12:24+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@d3593ee

remove Class advice

Files changed:
M src/plone/restapi/services/tiles/get.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-09-16T20:44:46-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@18031f1

Python 3 fixes

Files changed:
M src/plone/restapi/deserializer/controlpanels.py
M src/plone/restapi/deserializer/dxcontent.py
M src/plone/restapi/pas/plugin.py
M src/plone/restapi/serializer/catalog.py
M src/plone/restapi/services/auth/login.py
M src/plone/restapi/services/content/add.py
M src/plone/restapi/services/workflow/transition.py
M src/plone/restapi/tests/http-examples/404_not_found.resp
M src/plone/restapi/tests/http-examples/batching.resp
M src/plone/restapi/tests/http-examples/breadcrumbs.resp
M src/plone/restapi/tests/http-examples/collection.resp
M src/plone/restapi/tests/http-examples/comments_delete.resp
M src/plone/restapi/tests/http-examples/comments_get.resp
M src/plone/restapi/tests/http-examples/content_delete.resp
M src/plone/restapi/tests/http-examples/content_get.resp
M src/plone/restapi/tests/http-examples/content_patch.resp
M src/plone/restapi/tests/http-examples/content_patch_representation.resp
M src/plone/restapi/tests/http-examples/content_post.resp
M src/plone/restapi/tests/http-examples/controlpanels_get.resp
M src/plone/restapi/tests/http-examples/controlpanels_get_item.resp
M src/plone/restapi/tests/http-examples/copy.resp
M src/plone/restapi/tests/http-examples/copy_multiple.resp
M src/plone/restapi/tests/http-examples/document.resp
M src/plone/restapi/tests/http-examples/event.resp
M src/plone/restapi/tests/http-examples/expansion.resp
M src/plone/restapi/tests/http-examples/expansion_expanded.resp
M src/plone/restapi/tests/http-examples/file.resp
M src/plone/restapi/tests/http-examples/folder.resp
M src/plone/restapi/tests/http-examples/groups.resp
M src/plone/restapi/tests/http-examples/groups_delete.resp
M src/plone/restapi/tests/http-examples/groups_filtered_by_groupname.resp
M src/plone/restapi/tests/http-examples/groups_update.resp
M src/plone/restapi/tests/http-examples/history_get.resp
M src/plone/restapi/tests/http-examples/image.resp
M src/plone/restapi/tests/http-examples/jwt_logged_in.req
M src/plone/restapi/tests/http-examples/jwt_logged_in.resp
M src/plone/restapi/tests/http-examples/jwt_login.resp
M src/plone/restapi/tests/http-examples/jwt_login_renew.req
M src/plone/restapi/tests/http-examples/jwt_login_renew.resp
M src/plone/restapi/tests/http-examples/jwt_logout.req
M src/plone/restapi/tests/http-examples/link.resp
M src/plone/restapi/tests/http-examples/lock_get.resp
M src/plone/restapi/tests/http-examples/move.resp
M src/plone/restapi/tests/http-examples/navigation.resp
M src/plone/restapi/tests/http-examples/navigation_tree.resp
M src/plone/restapi/tests/http-examples/newsitem.resp
M src/plone/restapi/tests/http-examples/principals.resp
M src/plone/restapi/tests/http-examples/registry_get_list.resp
M src/plone/restapi/tests/http-examples/registry_update.resp
M src/plone/restapi/tests/http-examples/roles.resp
M src/plone/restapi/tests/http-examples/search.resp
M src/plone/restapi/tests/http-examples/sharing_folder_get.resp
M src/plone/restapi/tests/http-examples/sharing_folder_post.resp
M src/plone/restapi/tests/http-examples/sharing_search.resp
M src/plone/restapi/tests/http-examples/siteroot.resp
M src/plone/restapi/tests/http-examples/translated_messages_object_history.resp
M src/plone/restapi/tests/http-examples/translated_messages_types.resp
M src/plone/restapi/tests/http-examples/translated_messages_types_folder.resp
M src/plone/restapi/tests/http-examples/translations_delete.resp
M src/plone/restapi/tests/http-examples/translations_get.resp
M src/plone/restapi/tests/http-examples/translations_post.resp
M src/plone/restapi/tests/http-examples/tusupload_options.resp
M src/plone/restapi/tests/http-examples/types.resp
M src/plone/restapi/tests/http-examples/types_document.resp
M src/plone/restapi/tests/http-examples/unlock.resp
M src/plone/restapi/tests/http-examples/users.resp
M src/plone/restapi/tests/http-examples/users_add.resp
M src/plone/restapi/tests/http-examples/users_authorized_get.resp
M src/plone/restapi/tests/http-examples/users_created.resp
M src/plone/restapi/tests/http-examples/users_delete.resp
M src/plone/restapi/tests/http-examples/users_filtered_by_username.resp
M src/plone/restapi/tests/http-examples/users_get.resp
M src/plone/restapi/tests/http-examples/users_update.resp
M src/plone/restapi/tests/http-examples/vocabularies.resp
M src/plone/restapi/tests/http-examples/vocabularies_get.resp
M src/plone/restapi/tests/mixin_ordering.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_content_post.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxcontent_deserializer.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_pas.py
M src/plone/restapi/tests/test_roles.py
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_services_types.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-09-20T09:14:47+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@c54a79a

title needs to be unicode

Files changed:
M src/plone/restapi/tests/test_expansion.py
M src/plone/restapi/tests/test_translations.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-09-20T22:07:13-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@ec58703

More string handling fixes

Files changed:
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/deserializer/dxfields.py
M src/plone/restapi/deserializer/relationfield.py
M src/plone/restapi/serializer/configure.zcml
M src/plone/restapi/serializer/converters.py
M src/plone/restapi/services/workflow/info.py
M src/plone/restapi/tests/http-examples/expansion_expanded_full.resp
M src/plone/restapi/tests/http-examples/groups_created.resp
M src/plone/restapi/tests/http-examples/groups_get.resp
M src/plone/restapi/tests/http-examples/registry_get_list.resp
M src/plone/restapi/tests/http-examples/roles.resp
M src/plone/restapi/tests/http-examples/translated_messages_object_workflow.resp
M src/plone/restapi/tests/http-examples/workflow_get.resp
M src/plone/restapi/tests/http-examples/workflow_post_with_body.resp
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_dxfield_serializer.py
M src/plone/restapi/tests/test_pas.py
M src/plone/restapi/tests/test_serializer.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-09-24T22:19:55-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@bc363f3

More fixes

Files changed:
M src/plone/restapi/deserializer/__init__.py
M src/plone/restapi/services/content/tus.py
M src/plone/restapi/tests/http-examples/comments_add_root.resp
M src/plone/restapi/tests/http-examples/comments_add_sub.resp
M src/plone/restapi/tests/http-examples/comments_update.resp
M src/plone/restapi/tests/http-examples/groups_created.resp
M src/plone/restapi/tests/http-examples/lock.resp
M src/plone/restapi/tests/http-examples/lock_nonstealable_timeout.resp
M src/plone/restapi/tests/http-examples/lock_update.resp
M src/plone/restapi/tests/http-examples/refresh_lock.resp
M src/plone/restapi/tests/http-examples/roles.resp
M src/plone/restapi/tests/http-examples/tusreplace_patch.req
M src/plone/restapi/tests/http-examples/tusreplace_patch.resp
M src/plone/restapi/tests/http-examples/tusreplace_post.resp
M src/plone/restapi/tests/http-examples/tusupload_head.resp
M src/plone/restapi/tests/http-examples/tusupload_patch.req
M src/plone/restapi/tests/http-examples/tusupload_patch.resp
M src/plone/restapi/tests/http-examples/tusupload_patch_finalized.req
M src/plone/restapi/tests/http-examples/tusupload_patch_finalized.resp
M src/plone/restapi/tests/http-examples/tusupload_post.resp
M src/plone/restapi/tests/http-examples/workflow_post.resp
M src/plone/restapi/tests/mixin_ordering.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_atcontent_serializer.py
M src/plone/restapi/tests/test_atfield_deserializer.py
M src/plone/restapi/tests/test_atfield_serializer.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_content_local_roles.py
M src/plone/restapi/tests/test_copymove.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxcontent_deserializer.py
M src/plone/restapi/tests/test_dxcontent_serializer.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_dxfield_serializer.py
M src/plone/restapi/tests/test_functional_auth.py
M src/plone/restapi/tests/test_roles.py
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_search_utils.py
M src/plone/restapi/tests/test_serializer.py
M src/plone/restapi/tests/test_serializer_catalog.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_services.py
M src/plone/restapi/tests/test_services_email_notification.py
M src/plone/restapi/tests/test_services_email_send.py
M src/plone/restapi/tests/test_services_principals.py
M src/plone/restapi/tests/test_services_tiles.py
M src/plone/restapi/tests/test_services_types.py
M src/plone/restapi/tests/test_services_users.py
M src/plone/restapi/tests/test_setup.py
M src/plone/restapi/tests/test_site_deserializer.py
M src/plone/restapi/tests/test_site_serializer.py
M src/plone/restapi/tests/test_tus.py
M src/plone/restapi/tests/test_types.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-09-24T22:58:41-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@e96a2a7

fix regressions

Files changed:
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_setup.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-01T19:18:04+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.restapi@b072619

Merge branch 'master' into python3

Files changed:
A docs/source/contributing.rst
A src/plone/restapi/profiles/tiles/metadata.xml
A src/plone/restapi/profiles/tiles/types.xml
A src/plone/restapi/profiles/tiles/types/Document.xml
A src/plone/restapi/tests/http-examples/search_fullobjects.req
A src/plone/restapi/tests/http-examples/search_fullobjects.resp
A src/plone/restapi/tests/http-examples/search_metadata_fields.req
A src/plone/restapi/tests/http-examples/search_metadata_fields.resp
A src/plone/restapi/tests/http-examples/search_multiple_paths.req
A src/plone/restapi/tests/http-examples/search_multiple_paths.resp
A src/plone/restapi/tests/http-examples/search_options.req
A src/plone/restapi/tests/http-examples/search_options.resp
A src/plone/restapi/tests/test_profile_tiles.py
M CHANGES.rst
M MANIFEST.in
M Makefile
M base.cfg
M docs/source/index.rst
M docs/source/searching.rst
M docs/source/tiles.rst
M setup.py
M src/plone/restapi/configure.zcml
M src/plone/restapi/search/handler.py
M src/plone/restapi/serializer/user.py
M src/plone/restapi/services/users/add.py
M src/plone/restapi/setuphandlers.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/dxtypes.py
M src/plone/restapi/tests/http-examples/users.resp
M src/plone/restapi/tests/http-examples/users_add.resp
M src/plone/restapi/tests/http-examples/users_authorized_get.resp
M src/plone/restapi/tests/http-examples/users_created.resp
M src/plone/restapi/tests/http-examples/users_filtered_by_username.resp
M src/plone/restapi/tests/http-examples/users_get.resp
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_serializer_user.py
M src/plone/restapi/tests/test_services_users.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-01T19:40:44+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.restapi@c1a9e50

Pep8 fixes.

Files changed:
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxcontent_deserializer.py
M src/plone/restapi/tests/test_functional_auth.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_tus.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-01T20:01:27+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.restapi@2637e6e

Merge branch 'master' into python3

Files changed:
M src/plone/restapi/tests/test_search.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-02T13:54:30+02:00
Author: Timo Stollenwerk (tisto) <stollenwerk@kitconcept.com>
Commit: plone/plone.restapi@d104c33

Checkin doc changes that I ran locally on os x.

Files changed:
M src/plone/restapi/tests/http-examples/404_not_found.resp
M src/plone/restapi/tests/http-examples/batching.resp
M src/plone/restapi/tests/http-examples/breadcrumbs.resp
M src/plone/restapi/tests/http-examples/collection.resp
M src/plone/restapi/tests/http-examples/comments_add_root.resp
M src/plone/restapi/tests/http-examples/comments_add_sub.resp
M src/plone/restapi/tests/http-examples/comments_delete.resp
M src/plone/restapi/tests/http-examples/comments_get.resp
M src/plone/restapi/tests/http-examples/comments_update.resp
M src/plone/restapi/tests/http-examples/content_delete.resp
M src/plone/restapi/tests/http-examples/content_get.resp
M src/plone/restapi/tests/http-examples/content_patch.resp
M src/plone/restapi/tests/http-examples/content_patch_representation.resp
M src/plone/restapi/tests/http-examples/content_post.resp
M src/plone/restapi/tests/http-examples/controlpanels_get.resp
M src/plone/restapi/tests/http-examples/controlpanels_get_item.resp
M src/plone/restapi/tests/http-examples/copy.resp
M src/plone/restapi/tests/http-examples/copy_multiple.resp
M src/plone/restapi/tests/http-examples/document.resp
M src/plone/restapi/tests/http-examples/event.resp
M src/plone/restapi/tests/http-examples/expansion.resp
M src/plone/restapi/tests/http-examples/expansion_expanded.resp
M src/plone/restapi/tests/http-examples/expansion_expanded_full.resp
M src/plone/restapi/tests/http-examples/file.resp
M src/plone/restapi/tests/http-examples/folder.resp
M src/plone/restapi/tests/http-examples/groups.resp
M src/plone/restapi/tests/http-examples/groups_created.resp
M src/plone/restapi/tests/http-examples/groups_delete.resp
M src/plone/restapi/tests/http-examples/groups_filtered_by_groupname.resp
M src/plone/restapi/tests/http-examples/groups_get.resp
M src/plone/restapi/tests/http-examples/groups_update.resp
M src/plone/restapi/tests/http-examples/history_get.resp
M src/plone/restapi/tests/http-examples/image.resp
M src/plone/restapi/tests/http-examples/jwt_logged_in.req
M src/plone/restapi/tests/http-examples/jwt_logged_in.resp
M src/plone/restapi/tests/http-examples/jwt_login.resp
M src/plone/restapi/tests/http-examples/jwt_login_renew.req
M src/plone/restapi/tests/http-examples/jwt_login_renew.resp
M src/plone/restapi/tests/http-examples/jwt_logout.req
M src/plone/restapi/tests/http-examples/link.resp
M src/plone/restapi/tests/http-examples/lock.resp
M src/plone/restapi/tests/http-examples/lock_get.resp
M src/plone/restapi/tests/http-examples/lock_nonstealable_timeout.resp
M src/plone/restapi/tests/http-examples/lock_update.resp
M src/plone/restapi/tests/http-examples/move.resp
M src/plone/restapi/tests/http-examples/navigation.resp
M src/plone/restapi/tests/http-examples/navigation_tree.resp
M src/plone/restapi/tests/http-examples/newsitem.resp
M src/plone/restapi/tests/http-examples/principals.resp
M src/plone/restapi/tests/http-examples/refresh_lock.resp
M src/plone/restapi/tests/http-examples/registry_get_list.resp
M src/plone/restapi/tests/http-examples/registry_update.resp
M src/plone/restapi/tests/http-examples/roles.resp
M src/plone/restapi/tests/http-examples/search.resp
M src/plone/restapi/tests/http-examples/sharing_folder_get.resp
M src/plone/restapi/tests/http-examples/sharing_folder_post.resp
M src/plone/restapi/tests/http-examples/sharing_search.resp
M src/plone/restapi/tests/http-examples/siteroot.resp
M src/plone/restapi/tests/http-examples/translated_messages_object_history.resp
M src/plone/restapi/tests/http-examples/translated_messages_object_workflow.resp
M src/plone/restapi/tests/http-examples/translated_messages_types.resp
M src/plone/restapi/tests/http-examples/translated_messages_types_folder.resp
M src/plone/restapi/tests/http-examples/translations_delete.resp
M src/plone/restapi/tests/http-examples/translations_get.resp
M src/plone/restapi/tests/http-examples/translations_post.resp
M src/plone/restapi/tests/http-examples/tusreplace_patch.req
M src/plone/restapi/tests/http-examples/tusreplace_patch.resp
M src/plone/restapi/tests/http-examples/tusreplace_post.resp
M src/plone/restapi/tests/http-examples/tusupload_head.resp
M src/plone/restapi/tests/http-examples/tusupload_options.resp
M src/plone/restapi/tests/http-examples/tusupload_patch.req
M src/plone/restapi/tests/http-examples/tusupload_patch.resp
M src/plone/restapi/tests/http-examples/tusupload_patch_finalized.req
M src/plone/restapi/tests/http-examples/tusupload_patch_finalized.resp
M src/plone/restapi/tests/http-examples/tusupload_post.resp
M src/plone/restapi/tests/http-examples/types.resp
M src/plone/restapi/tests/http-examples/types_document.resp
M src/plone/restapi/tests/http-examples/unlock.resp
M src/plone/restapi/tests/http-examples/users.resp
M src/plone/restapi/tests/http-examples/users_add.resp
M src/plone/restapi/tests/http-examples/users_authorized_get.resp
M src/plone/restapi/tests/http-examples/users_created.resp
M src/plone/restapi/tests/http-examples/users_delete.resp
M src/plone/restapi/tests/http-examples/users_filtered_by_username.resp
M src/plone/restapi/tests/http-examples/users_get.resp
M src/plone/restapi/tests/http-examples/users_update.resp
M src/plone/restapi/tests/http-examples/vocabularies.resp
M src/plone/restapi/tests/http-examples/vocabularies_get.resp
M src/plone/restapi/tests/http-examples/workflow_get.resp
M src/plone/restapi/tests/http-examples/workflow_post.resp
M src/plone/restapi/tests/http-examples/workflow_post_with_body.resp
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-02T09:04:41-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@aedc7f5

Fix remaining tests

Files changed:
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_tus.py
M src/plone/restapi/types/utils.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-02T09:09:15-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@ff48344

Fix test: normalize difference between Plone 5.2 and previous versions

Files changed:
M src/plone/restapi/tests/test_search.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-02T09:18:40-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@49e0137

Fix formatting

Files changed:
M src/plone/restapi/tests/test_tus.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T09:56:32+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@3c36854

gitignore mypy cache

Files changed:
M .gitignore
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T13:36:08+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@0e27792

fix tests for local roles.

Files changed:
M src/plone/restapi/tests/test_content_local_roles.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T13:48:14+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@e3f5d65

Fix test because i'm an idiot that doesn't run them before pushing.

Files changed:
M src/plone/restapi/tests/test_content_local_roles.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T13:55:37+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@a99b3b7

flake8

Files changed:
M src/plone/restapi/tests/test_content_local_roles.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T14:51:38+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@48246ac

Remove HAS_AT checks as the conditional ZCML is enough

Files changed:
M src/plone/restapi/deserializer/atcontent.py
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/serializer/atcollection.py
M src/plone/restapi/serializer/atcontent.py
M src/plone/restapi/serializer/atfields.py
M src/plone/restapi/services/content/add.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T15:35:12+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@ef79f71

see you later flake8r

Files changed:
M src/plone/restapi/deserializer/atcontent.py
M src/plone/restapi/deserializer/atfields.py
M src/plone/restapi/serializer/atcontent.py
M src/plone/restapi/serializer/atfields.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-03T15:56:15+02:00
Author: Roel Bruggink (jaroel) <roel@jaroel.nl>
Commit: plone/plone.restapi@5d4c94d

flake4

Files changed:
M src/plone/restapi/serializer/atcollection.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-04T23:00:34-04:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/plone.restapi@53036ea

Skip AT tests unless we have AT

Files changed:
M src/plone/restapi/tests/test_content_delete.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-12T12:20:23+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@ced7377

skip tests until plone/Products.CMFPlone#2592 (comment) is resolved

Files changed:
M src/plone/restapi/tests/test_batching.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-12T12:32:11+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@945cf5f

remove unused import

Files changed:
M src/plone/restapi/tests/test_batching.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-12T16:37:16+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@af02232

revert skip because then tne next test in the layer fails...

Files changed:
M src/plone/restapi/tests/test_batching.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-12T18:12:28+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@23fad9a

add crazy dummy-test to fix plone/Products.CMFPlone#2592

Files changed:
M src/plone/restapi/tests/test_batching.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-17T11:58:05+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@7fe22a5

add changenote and classifiers

Files changed:
M CHANGES.rst
M setup.py
Repository: plone.restapi

Branch: refs/heads/master
Date: 2018-10-17T12:24:04+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.restapi@1d4d683

Merge pull request #542 from plone/python3

[WIP] Python 3 support

Files changed:
M .gitignore
M CHANGES.rst
M setup.py
M src/plone/restapi/__init__.py
M src/plone/restapi/batching.py
M src/plone/restapi/demo/demo.py
M src/plone/restapi/deserializer/__init__.py
M src/plone/restapi/deserializer/atcontent.py
M src/plone/restapi/deserializer/controlpanels.py
M src/plone/restapi/deserializer/dxcontent.py
M src/plone/restapi/deserializer/dxfields.py
M src/plone/restapi/deserializer/relationfield.py
M src/plone/restapi/imaging.py
M src/plone/restapi/pas/plugin.py
M src/plone/restapi/search/utils.py
M src/plone/restapi/serializer/atcollection.py
M src/plone/restapi/serializer/atcontent.py
M src/plone/restapi/serializer/atfields.py
M src/plone/restapi/serializer/catalog.py
M src/plone/restapi/serializer/configure.zcml
M src/plone/restapi/serializer/converters.py
M src/plone/restapi/serializer/dxcontent.py
M src/plone/restapi/serializer/expansion.py
M src/plone/restapi/serializer/registry.py
M src/plone/restapi/services/auth/login.py
M src/plone/restapi/services/content/add.py
M src/plone/restapi/services/content/tus.py
M src/plone/restapi/services/content/utils.py
M src/plone/restapi/services/copymove/copymove.py
M src/plone/restapi/services/discussion/conversation.py
M src/plone/restapi/services/email_send/post.py
M src/plone/restapi/services/groups/delete.py
M src/plone/restapi/services/groups/get.py
M src/plone/restapi/services/groups/update.py
M src/plone/restapi/services/history/get.py
M src/plone/restapi/services/history/patch.py
M src/plone/restapi/services/multilingual/pam.py
M src/plone/restapi/services/registry/get.py
M src/plone/restapi/services/tiles/get.py
M src/plone/restapi/services/types/get.py
M src/plone/restapi/services/users/add.py
M src/plone/restapi/services/users/delete.py
M src/plone/restapi/services/users/get.py
M src/plone/restapi/services/users/update.py
M src/plone/restapi/services/vocabularies/get.py
M src/plone/restapi/services/workflow/info.py
M src/plone/restapi/services/workflow/transition.py
M src/plone/restapi/testing.py
M src/plone/restapi/tests/helpers.py
M src/plone/restapi/tests/mixin_ordering.py
M src/plone/restapi/tests/performance.py
M src/plone/restapi/tests/test_atcollection.py
M src/plone/restapi/tests/test_atcontent_deserializer.py
M src/plone/restapi/tests/test_atcontent_serializer.py
M src/plone/restapi/tests/test_atfield_deserializer.py
M src/plone/restapi/tests/test_atfield_serializer.py
M src/plone/restapi/tests/test_batching.py
M src/plone/restapi/tests/test_comments.py
M src/plone/restapi/tests/test_content_delete.py
M src/plone/restapi/tests/test_content_get.py
M src/plone/restapi/tests/test_content_local_roles.py
M src/plone/restapi/tests/test_content_patch.py
M src/plone/restapi/tests/test_content_post.py
M src/plone/restapi/tests/test_content_utils.py
M src/plone/restapi/tests/test_copymove.py
M src/plone/restapi/tests/test_documentation.py
M src/plone/restapi/tests/test_dxcontent_deserializer.py
M src/plone/restapi/tests/test_dxcontent_serializer.py
M src/plone/restapi/tests/test_dxfield_deserializer.py
M src/plone/restapi/tests/test_dxfield_serializer.py
M src/plone/restapi/tests/test_error_handling.py
M src/plone/restapi/tests/test_expansion.py
M src/plone/restapi/tests/test_pas.py
M src/plone/restapi/tests/test_registry.py
M src/plone/restapi/tests/test_registry_serializer.py
M src/plone/restapi/tests/test_roles.py
M src/plone/restapi/tests/test_search.py
M src/plone/restapi/tests/test_search_utils.py
M src/plone/restapi/tests/test_serializer.py
M src/plone/restapi/tests/test_serializer_catalog.py
M src/plone/restapi/tests/test_serializer_converters.py
M src/plone/restapi/tests/test_serializer_group.py
M src/plone/restapi/tests/test_serializer_summary.py
M src/plone/restapi/tests/test_services.py
M src/plone/restapi/tests/test_services_actions.py
M src/plone/restapi/tests/test_services_comments.py
M src/plone/restapi/tests/test_services_email_notification.py
M src/plone/restapi/tests/test_services_email_send.py
M src/plone/restapi/tests/test_services_history.py
M src/plone/restapi/tests/test_services_principals.py
M src/plone/restapi/tests/test_services_tiles.py
M src/plone/restapi/tests/test_services_types.py
M src/plone/restapi/tests/test_services_users.py
M src/plone/restapi/tests/test_services_vocabularies.py
M src/plone/restapi/tests/test_setup.py
M src/plone/restapi/tests/test_site_deserializer.py
M src/plone/restapi/tests/test_site_serializer.py
M src/plone/restapi/tests/test_translations.py
M src/plone/restapi/tests/test_tus.py
M src/plone/restapi/tests/test_types.py
M src/plone/restapi/tests/test_workflow.py
M src/plone/restapi/types/utils.py

@pbauer pbauer reopened this Oct 17, 2018

Python 3 automation moved this from Done to In Progress Oct 17, 2018

@pbauer

This comment has been minimized.

Member

pbauer commented Nov 1, 2018

All tasks in preparation of 5.2a1 are now done, so I'll close this issue.
The problem with the thread-local SiteInfo that was unearthed by @lukasgraf in
#2592 (comment) should maybe become a separate ticket. @lukasgraf: Could you add that please?

@pbauer pbauer closed this Nov 1, 2018

Python 3 automation moved this from In Progress to Done Nov 1, 2018

@lukasgraf

This comment has been minimized.

Member

lukasgraf commented Nov 1, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment