Any thoughts on branches in terms of development? All for proper feature branching/merging. In the past, I’ve kept master in sync with .org’s SVN to avoid confusion for folks that stumble across the project for google, etc., and did most of the work in a `develop` branch, but up for others’ expertise. Thoughts?
Updates from Ben Balter Toggle Comment Threads | Keyboard Shortcuts
-
Ben Balter
-
Ben Balter
Introducing Post Forking for WordPress
WordPress sets out to democratize publishing, and today the CMS gains an important new feature to that end: Post Forking.
WordPress Post Forking allows users to “fork” or create an alternate version of content and in doing so, sets out to foster a more collaborative approach to WordPress content curation. This can be used, for example, to allow external users (such as visitors to your site) or internal users (such as other authors) with the ability to submit proposed revisions. It can even be used on smaller or single-author sites to enable post authors to edit published posts without their changes appearing immediately. If you’re familiar with Git, or other decentralized version control systems, you’re already familiar with WordPress post forking.
How might you use it?
- Allowing users without edit or publish post capabilities to edit and submit changes to content (similar to GitHub’s pull request system)
- Collaborative editing (by resolving two users’ conflicted saves – Wired’s example)
- Saving draft changes of already-published content
- Scheduling pending changes to already-published content
Why this plugin?
How does it work?
When a user without the
edit_post
capability attempts to edit a given post, WordPress will automatically create a “fork” or alternate version of the post which they can freely edit. The edit screen will look just like the standard post editing interface that they are used to. When they’re done, they simply click “submit for review.” At this point, the fork goes into the standard WordPress moderation queue (just like any time an author without thepublish_post
capability submits a post), where an editor can review, and potentially approve the changes for publishing. If the changes can be automatically merged, the original post will be updated, otherwise, the editor will be presented with the ability to resolve the conflicting changes. All this is done using WordPress’s built-in custom post type, revision, and diff functionality, so it should look familiar to most WordPress users.Interested?
Download the plugin from the WordPress plugin repository, or fork the project on GitHub, or for more information, visit the Post Forking project wiki.
This version constitutes an initial release designed to showcase the plugin’s core functionality and is intended to be improved upon with additional features and refinements as the project evolves. Please consider contributing your time to help improve the project. -
Deven Pitcher
A better wiki interface?
-
Michael
Very good plugin idea!
-
Chris K.
This a really timely plugin. Thanks for making it available.
In addition to Benjamin’s post on the subject, it’s worth looking at a project that came out of last summer’s Knight-Mozilla Learning Lab that has several similar aspects: http://polarjordan.blogspot.com/2011/08/moznewslab-proposal-infinite-story.html
-
mikeschinkel
Wow. Nice!
-
cars
It is hard to dispute the fact that car shopping is a stressful,
anxiety-ridden task for many individuals. The sheer size of the expenditure involved and the
myriad of choices on the market make the need for education and information quite
critical. Fortunately, the tips below can make the process far simpler than you may have believed. -
Ann
I am actually thankful to the owner of this site who has shared this fantastic paragraph at at this time.
-
how do people save so much with coupons
Good post. I am dealing with a few of these issues as well.
.
Ben Balter
We’re all set with .org (get it? It’s a fork?), and both the GitHub repo and this P2 are now public. I’ve got a short post queued up for first thing tomorrow morning, and tagged v0.1 in both GIt and SVN.
Ben Balter
It’s the final countdown.
- permissions (Balter)
- Post metabox (Bachhuber)
Pending wrapping up the above, would love to see this get pushed public Thursday, if not, Monday at the latest.
If you can take a few minutes to spin up and install and click around a bit, even opening issues would be helpful at this point.
-
Daniel Bachhuber
Ugh, I’m bad. Trying to get to this tonight.
-
Daniel Bachhuber
Working on it now.
-
Daniel Bachhuber
All done. Let’s ship it today!
-
Benjamin J. Balter
W00t. Looks awesome!
-
Benjamin J. Balter
Have a few UI tweaks I’d like to tackle / clean things up a bit (opened issues)… nothing critical, but let’s shoot for Monday rain or shine? Can write a quick blog post to put here, etc.
-
Daniel Bachhuber
Sounds great
-
-
Ben Balter
Did a big round of cleaning up, including a whole bunch of unit tests (and associated fixes as a result).
- permission tweaks (on it)
Possibly a bug on merge, but I thinkit’s resolved- Publish metabox refresh
Documentation final pass
With the above knocked out, I think we’d have a solid 0.1 and would feel comfortably flipping the switch and making things public. Thoughts?
-
Daniel Bachhuber
Sounds great!
-
Benjamin J. Balter
Update: Documentation should be close to good to go.
-
Daniel Bachhuber
Want me to crank out the publish metabox this weekend?
-
Benjamin J. Balter
That’d be awesome. Given your expertise with Edit Flow, I think you might know the code better (and seem to have a crisp vision for where it should be). Let me know how I can help.
I was going to try to crank out the last few remaining permission issues this weekend, and and was hoping that we could shoot for at least a soft launch on GitHub early next week so we can get some more folks involved, or if the codes there, just go ahead and push to the .org repo.
-
Benjamin J. Balter
Any chance you had a chance to take a stab at metabox? (think I saw there was a wordcamp). If not, no worries, just trying to figure out how soon we can get this out the door.
-
Daniel Bachhuber
Nope, but I’ll take a swing today
-
-
Ben Balter
FYI, requested a repo on .org so we can get it in the plugin directory when we’re ready
-
Daniel Bachhuber
Nice. I think I can take another look through this afternoon
-
Benjamin J. Balter
FYI, Repo’s all set (we should all be contribs), just waiting on code.
Ben Balter
-
Benjamin J. Balter
Opened tickets for all of the above: https://github.com/benbalter/post-forking/issues?state=open
-
Daniel Bachhuber
The killer feature is the button you can add on the frontend where users can “fork” a piece of content, make changes, and submit those changes for review. Ideally, users shouldn’t have to be logged in or need to access the backend for this to happen.
If the backend workflow features are useful enough though, maybe the frontend stuff can come later and, after it, a big announcement.
-
Benjamin J. Balter
That’s the vision. I’d love for it to be like P2 where most folks never even know the back end exists.
I see two distinct use cases that we have to build for:
1) Collaborative editing. I’m on the backend, i’m comfortable there, but the standard revision system isn’t enough for my organization’s needs.
2) user-submitted edits. I’m a newspaper and I want people to be able to submit corrections, which I approve and go live.
#1’s most of the way there. #2 is plumbed in. There should already be an API exposed to allow everything to happen from the front end. I played around with Scribu’s front-end-editing a bit, but nothing substantive.
The one issue I’d love to figure out (as I imagine in #2 the publisher wouldn’t want the public in their users table), how to allow (pseudo)anonymous forks. We’d need some sort of persistence (this guy has submitted 3 things before) perhaps along the line of comment authors, but I think they’d need to be users (or at least *a* user) so the fork can have an author. Thoughts?
-
Daniel Bachhuber 11:13 am on October 1, 2012 Permalink
I used to follow the master/develop approach but then decided it wasn’t offering much value, was a pain to maintain, and made things painful when users wanted to submit pull requests
Benjamin J. Balter 11:19 am on October 1, 2012 Permalink
Makes sense. I can add a note to the documentation, and we should treat SVN as stable and master as develop?
Daniel Bachhuber 11:22 am on October 1, 2012 Permalink
Sure, that works for me.