To be able to create content on multiple sites, and to keep the content synchronized, while allowing each site to have a life of its own.
Business requirements
Real world examples- Replication of content to multiple sites
- Replication of updated content
- Pulling changes from staging to live
- Pushing changes from staging to live
Functional requirements
- Selective cloning to multiple targets
- To propagate changes when required
- Support pushing and pulling as required
- Support cloning of hierarchical content (v0.4)
- Support complex relationships between content (v0.5)
- Support pushing of media files with attachments (v0.6)
- Support taxonomies – flat and hierarchical (v0.7)
- Support mapping of post IDs within content (v0.8)
- Support pushing of media files using multipart forms (v0.9)
Non-functional requirements
- Currently assuming using WordPress or WordPress Multisite
- Support a variety of technologies
- Support multiple authentication methods
- Limit usage to authorised users
- Multiple language support for UI
- Extensible architecture
- Re-use rather than re-invent
- Implemented as Open Source project
- Licensed GPL2
- Use native/common APIs when available e.g. WordPress, WP-API
- Regression test cases
Exclusions -currently out of scope
- One click publish from staging to production
- Scheduled cloning
- Reconciliation
- To selectively clone some information while ignoring other bits
- Support for different users
- Support for comments
Roadmap to get to v1.0
- v0.6 is already in Alpha test
- v0.7 includes support for cloning hierarchical taxonomies.
- v0.8 supports mapping of post IDs within content
- It is now in Beta test
- v0.9 will
- Then, after a bit of Yak Shaving I expect, we’ll release version 1.0
- After that we’ll attempt integration with the REST API
Caveats and other notes
- It is highly recommended that you should read these requirements in conjunction with FAQs and other documentation.
- Don’t rely on this solution until an official version is announced
- Plans are liable to change
- Requirements and proposed solutions are also liable to change
- oik-clone is currently dependent upon the oik base plugin
- Refer to the version log for known limitations