plone.exportimport


Nameplone.exportimport JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://plone.org
SummaryPlone content export / import support
upload_time2025-03-11 21:38:41
maintainerNone
docs_urlNone
authorPlone Foundation
requires_python>=3.8
licenseGPL version 2
keywords plone cmf python zope cms
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<p align="center">
    <img alt="Plone Logo" width="200px" src="https://raw.githubusercontent.com/plone/.github/main/plone-logo.png">
</p>

<h1 align="center">
  Plone Content Export and Import
</h1>

Package supporting the export and import of content, principals, relations, translations, discussions, and redirects from and to a Plone site.

## Introduction

This package is a slimmer version of the awesome [collective.exportimport](https://github.com/collective/collective.exportimport).

While `collective.exportimport` supports older Plone versions and Python 2, and also takes care of data conversion from Archetypes to Dexterity, this package focuses only on latest Plone and Python.


## Documentation

[`plone.exportimport` documentation](https://6.docs.plone.org/admin-guide/export-import.html)



## Installation

> [!IMPORTANT]
> This package supports sites running Plone version 6.0 and above.

> [!IMPORTANT]
> This package is now included with Plone 6.1 and above by default.

If `plone.exportimport` is not yet available in your Plone installation, add it using `pip`.

```shell
pip install plone.exportimport
```


## Contributing

See [Contributing to Plone](https://6.docs.plone.org/contributing/index.html) and [Contribute to Plone 6 core](Contribute to Plone 6 core) for general contributing policies and guidance.

The following sections specifically describe how to develop and contribute to `plone.exportimport`.


### Setup

You need a working Python environment version 3.8 or later.

Install the dependencies and a development instance using the following command.

```shell
make install
```


### Local environment Plone server

Start Plone, on port 8080, with the following command.

```shell
make start
```


### Format code base

Format the code base with the following command.

```shell
make format
```


### Run tests

Testing of this package is done with [`pytest`](https://docs.pytest.org/en/stable/) and [`tox`](https://tox.wiki/en/stable/).

Run all tests with the following command.

```shell
make test
```

Run all tests, but stop on the first error and open a `pdb` session.

```shell
./bin/tox -e test -- -x --pdb
```

Run tests named `TestUtilsDiscussions`.

```shell
./bin/tox -e test -- -k TestUtilsDiscussions
```


## License

The project is licensed under the GPLv2.


# Changelog

<!--
   You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst
-->

<!-- towncrier release notes start -->

## 1.1.0 (2025-03-11)


### New features:

- Report object creation during import using the plone-importer cli. Use --quiet to disable it. @ericof #54
- Do not stop the import if an object parent is missing @ericof #56


### Bug fixes:

- Set site during plone-importer transaction commit. @ericof #52
- Sort `relations.json` and `translations.json` so their contents are stable.  @mauritsvanrees #57

## 1.0.0 (2025-01-31)


### Bug fixes:

- Export the raw value of rich text fields, instead of the transformed output.
  This fixes internal links in Classic UI based distributions.
  @mauritsvanrees #48
- Fix traceback when translation group does not have the default language.
  @mauritsvanrees #50


### Documentation:

- Migrate documentation to README.md and https://6.docs.plone.org/admin-guide/export-import.html. @stevepiercy #46

## 1.0.0b1 (2025-01-23)


### New features:

- Include revisions only when passing `--include-revisions`.  @mauritsvanrees #39


### Bug fixes:

- Export principals: sort groups, roles, and members.  @mauritsvanrees #39
- Import: update modification dates again at the end. The original modification dates may have changed.  @mauritsvanrees #39
- Do not export parent info.
  This information is no longer needed: during import, parents are now always found by path and not by UID.
  From now on, the import ignores any parent info that is set.
  @mauritsvanrees #39

## 1.0.0a8 (2024-10-11)


### Bug fixes:

- Use plone.app.discussion and plone.app.multilingual as optional dependencies.
  @davisagli #18
- Include 'isReferencing' relations in import. @ksuess #32
- Set constraints after setting local permissions on content [@ericof] #33
- Export adds a newline at the end of all files.
  This matches the `.editorconfig` settings that we have in most Plone packages.
  [maurits] #35
- Do not export or import translations when `plone.app.multilingual` is not available.
  [maurits] #35
- Disallowlisted portlets were not imported when there was no accompanying change in the actual portlet list.
  [maurits] #35
- Add a fixer for the `allow_discussion` key: this should only contain True or False when this is explicitly set on the object.
  [maurits] #35
- Do not export or import discussions/comments when `plone.app.discussion` is not available.
  [maurits] #35
- Renamed `blacklisted_status` key to `blocked_status` to be sensitive.
  We still read the old key for backwards compatibility.
  [maurits] #35

## 1.0.0a7 (2024-06-13)


### New features:

- Export / Import local permissions for each content [@ericof] #15


### Bug fixes:

- Fix `plone.exportimport.utils.principals.members._run_as_manager` function [@ericof] #29

## 1.0.0a6 (2024-06-10)


### Bug fixes:

- Allow granting roles other than Manager and Member to principals [@ericof] #25
- Fix export of language for content [@sneridagh] #26

## 1.0.0a5 (2024-05-16)


### Internal:

- Fix list of test dependencies [@ericof] 

## 1.0.0a4 (2024-05-15)


### New features:

- Add pre_deserialize_hooks to content import [@pbauer] #22


### Bug fixes:

- Reindex members of relations in case that they contain preview_image_links
  [sneridagh] #13
- Avoid duplicating portlets registration during import [@ericof] #16


### Internal:

- Update plone/meta [@ericof] #20


## 1.0.0a3 (2024-05-02)


### Bug fixes:

- Fix importer by issuing a transaction commit
  [sneridagh] #9
- Account for use case language is empty string
  [sneridagh] #10


## 1.0.0a2 (2024-04-18)


### New features:

- Support export/import of portlets if plone.app.portlets is installed. @davisagli #8


## 1.0.0a1 (2024-04-17)


### New features:

- Implement exporter and importer for content [@ericof] #1
- Implement exporter and importer for members and groups [@ericof] #2
- Implement exporter and importer for redirects [@ericof] #3
- Implement exporter and importer for relations [@ericof] #4
- Implement exporter and importer for translations [@ericof] #5
- Implement exporter and importer for discussions [@ericof] #6



            

Raw data

            {
    "_id": null,
    "home_page": "https://plone.org",
    "name": "plone.exportimport",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Plone CMF Python Zope CMS",
    "author": "Plone Foundation",
    "author_email": "releasemanager@plone.org",
    "download_url": "https://files.pythonhosted.org/packages/10/b0/9605d69ff27a9ebbd87efcc53d5efab9f9c06ebce9263e4d371934359e81/plone_exportimport-1.1.0.tar.gz",
    "platform": null,
    "description": "\n<p align=\"center\">\n    <img alt=\"Plone Logo\" width=\"200px\" src=\"https://raw.githubusercontent.com/plone/.github/main/plone-logo.png\">\n</p>\n\n<h1 align=\"center\">\n  Plone Content Export and Import\n</h1>\n\nPackage supporting the export and import of content, principals, relations, translations, discussions, and redirects from and to a Plone site.\n\n## Introduction\n\nThis package is a slimmer version of the awesome [collective.exportimport](https://github.com/collective/collective.exportimport).\n\nWhile `collective.exportimport` supports older Plone versions and Python 2, and also takes care of data conversion from Archetypes to Dexterity, this package focuses only on latest Plone and Python.\n\n\n## Documentation\n\n[`plone.exportimport` documentation](https://6.docs.plone.org/admin-guide/export-import.html)\n\n\n\n## Installation\n\n> [!IMPORTANT]\n> This package supports sites running Plone version 6.0 and above.\n\n> [!IMPORTANT]\n> This package is now included with Plone 6.1 and above by default.\n\nIf `plone.exportimport` is not yet available in your Plone installation, add it using `pip`.\n\n```shell\npip install plone.exportimport\n```\n\n\n## Contributing\n\nSee [Contributing to Plone](https://6.docs.plone.org/contributing/index.html) and [Contribute to Plone 6 core](Contribute to Plone 6 core) for general contributing policies and guidance.\n\nThe following sections specifically describe how to develop and contribute to `plone.exportimport`.\n\n\n### Setup\n\nYou need a working Python environment version 3.8 or later.\n\nInstall the dependencies and a development instance using the following command.\n\n```shell\nmake install\n```\n\n\n### Local environment Plone server\n\nStart Plone, on port 8080, with the following command.\n\n```shell\nmake start\n```\n\n\n### Format code base\n\nFormat the code base with the following command.\n\n```shell\nmake format\n```\n\n\n### Run tests\n\nTesting of this package is done with [`pytest`](https://docs.pytest.org/en/stable/) and [`tox`](https://tox.wiki/en/stable/).\n\nRun all tests with the following command.\n\n```shell\nmake test\n```\n\nRun all tests, but stop on the first error and open a `pdb` session.\n\n```shell\n./bin/tox -e test -- -x --pdb\n```\n\nRun tests named `TestUtilsDiscussions`.\n\n```shell\n./bin/tox -e test -- -k TestUtilsDiscussions\n```\n\n\n## License\n\nThe project is licensed under the GPLv2.\n\n\n# Changelog\n\n<!--\n   You should *NOT* be adding new change log entries to this file.\n   You should create a file in the news directory instead.\n   For helpful instructions, please see:\n   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n-->\n\n<!-- towncrier release notes start -->\n\n## 1.1.0 (2025-03-11)\n\n\n### New features:\n\n- Report object creation during import using the plone-importer cli. Use --quiet to disable it. @ericof #54\n- Do not stop the import if an object parent is missing @ericof #56\n\n\n### Bug fixes:\n\n- Set site during plone-importer transaction commit. @ericof #52\n- Sort `relations.json` and `translations.json` so their contents are stable.  @mauritsvanrees #57\n\n## 1.0.0 (2025-01-31)\n\n\n### Bug fixes:\n\n- Export the raw value of rich text fields, instead of the transformed output.\n  This fixes internal links in Classic UI based distributions.\n  @mauritsvanrees #48\n- Fix traceback when translation group does not have the default language.\n  @mauritsvanrees #50\n\n\n### Documentation:\n\n- Migrate documentation to README.md and https://6.docs.plone.org/admin-guide/export-import.html. @stevepiercy #46\n\n## 1.0.0b1 (2025-01-23)\n\n\n### New features:\n\n- Include revisions only when passing `--include-revisions`.  @mauritsvanrees #39\n\n\n### Bug fixes:\n\n- Export principals: sort groups, roles, and members.  @mauritsvanrees #39\n- Import: update modification dates again at the end. The original modification dates may have changed.  @mauritsvanrees #39\n- Do not export parent info.\n  This information is no longer needed: during import, parents are now always found by path and not by UID.\n  From now on, the import ignores any parent info that is set.\n  @mauritsvanrees #39\n\n## 1.0.0a8 (2024-10-11)\n\n\n### Bug fixes:\n\n- Use plone.app.discussion and plone.app.multilingual as optional dependencies.\n  @davisagli #18\n- Include 'isReferencing' relations in import. @ksuess #32\n- Set constraints after setting local permissions on content [@ericof] #33\n- Export adds a newline at the end of all files.\n  This matches the `.editorconfig` settings that we have in most Plone packages.\n  [maurits] #35\n- Do not export or import translations when `plone.app.multilingual` is not available.\n  [maurits] #35\n- Disallowlisted portlets were not imported when there was no accompanying change in the actual portlet list.\n  [maurits] #35\n- Add a fixer for the `allow_discussion` key: this should only contain True or False when this is explicitly set on the object.\n  [maurits] #35\n- Do not export or import discussions/comments when `plone.app.discussion` is not available.\n  [maurits] #35\n- Renamed `blacklisted_status` key to `blocked_status` to be sensitive.\n  We still read the old key for backwards compatibility.\n  [maurits] #35\n\n## 1.0.0a7 (2024-06-13)\n\n\n### New features:\n\n- Export / Import local permissions for each content [@ericof] #15\n\n\n### Bug fixes:\n\n- Fix `plone.exportimport.utils.principals.members._run_as_manager` function [@ericof] #29\n\n## 1.0.0a6 (2024-06-10)\n\n\n### Bug fixes:\n\n- Allow granting roles other than Manager and Member to principals [@ericof] #25\n- Fix export of language for content [@sneridagh] #26\n\n## 1.0.0a5 (2024-05-16)\n\n\n### Internal:\n\n- Fix list of test dependencies [@ericof] \n\n## 1.0.0a4 (2024-05-15)\n\n\n### New features:\n\n- Add pre_deserialize_hooks to content import [@pbauer] #22\n\n\n### Bug fixes:\n\n- Reindex members of relations in case that they contain preview_image_links\n  [sneridagh] #13\n- Avoid duplicating portlets registration during import [@ericof] #16\n\n\n### Internal:\n\n- Update plone/meta [@ericof] #20\n\n\n## 1.0.0a3 (2024-05-02)\n\n\n### Bug fixes:\n\n- Fix importer by issuing a transaction commit\n  [sneridagh] #9\n- Account for use case language is empty string\n  [sneridagh] #10\n\n\n## 1.0.0a2 (2024-04-18)\n\n\n### New features:\n\n- Support export/import of portlets if plone.app.portlets is installed. @davisagli #8\n\n\n## 1.0.0a1 (2024-04-17)\n\n\n### New features:\n\n- Implement exporter and importer for content [@ericof] #1\n- Implement exporter and importer for members and groups [@ericof] #2\n- Implement exporter and importer for redirects [@ericof] #3\n- Implement exporter and importer for relations [@ericof] #4\n- Implement exporter and importer for translations [@ericof] #5\n- Implement exporter and importer for discussions [@ericof] #6\n\n\n",
    "bugtrack_url": null,
    "license": "GPL version 2",
    "summary": "Plone content export / import support",
    "version": "1.1.0",
    "project_urls": {
        "Documentation": "https://6.docs.plone.org",
        "Homepage": "https://plone.org",
        "Issues": "https://github.com/plone/plone.exportimport/issues",
        "Source": "https://github.com/plone/plone.exportimport"
    },
    "split_keywords": [
        "plone",
        "cmf",
        "python",
        "zope",
        "cms"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0fed89e1dcf88e4f7809161578ba78d16845dbed7ad72ef8dcfd23175ecb9f20",
                "md5": "0110332b7726c1e266514814e1ba2c22",
                "sha256": "004b68df86aceb10a00de90d4f3dfc085960b199b8e225a2fad80e5474f0bd45"
            },
            "downloads": -1,
            "filename": "plone.exportimport-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0110332b7726c1e266514814e1ba2c22",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 64623,
            "upload_time": "2025-03-11T21:38:39",
            "upload_time_iso_8601": "2025-03-11T21:38:39.171521Z",
            "url": "https://files.pythonhosted.org/packages/0f/ed/89e1dcf88e4f7809161578ba78d16845dbed7ad72ef8dcfd23175ecb9f20/plone.exportimport-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "10b09605d69ff27a9ebbd87efcc53d5efab9f9c06ebce9263e4d371934359e81",
                "md5": "5347547ffa299d555d3d6d82f8473eb7",
                "sha256": "a85420732f319abfc3d40f4dee214065e4de15a77cf3e5f82dbbdf2df410d5aa"
            },
            "downloads": -1,
            "filename": "plone_exportimport-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5347547ffa299d555d3d6d82f8473eb7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 194933,
            "upload_time": "2025-03-11T21:38:41",
            "upload_time_iso_8601": "2025-03-11T21:38:41.176617Z",
            "url": "https://files.pythonhosted.org/packages/10/b0/9605d69ff27a9ebbd87efcc53d5efab9f9c06ebce9263e4d371934359e81/plone_exportimport-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-03-11 21:38:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "plone",
    "github_project": "plone.exportimport",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "plone.exportimport"
}
        
Elapsed time: 5.63519s