[Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-04 Thread Jack Phoenix
To those who don't know me yet, hi! I'm Jack Phoenix, and I've been a
MediaWiki developer since May 2008.

One of the major third-party users of the MediaWiki software is wikiHow (
http://www.wikihow.com/), a free how-to manual.
In my opinion, wikiHow rocks! (No, I don't work for wikiHow and I never
have.) However, wikiHow has one rather big problem. You can see it on their
Special:Version. Yep... the site's running MediaWiki 1.12 (!), which is
four years old.
In software development, four years is an eternity. However, wikiHow's
technical team is rather small and their codebase is full of custom
extensions, patches and hacks -- as a result, they don't really have time
for gigantic projects, such as upgrading the MediaWiki engine, let alone
managing an open source project.
Fortunately wikiHow publishes their source code at
http://src.wikihow.comand a new dump will be generated each Monday.

Inspired by this, a fellow developer and a friend of mine, Lewis Cawte
(User:Lcawte) created a Google Code repository for the project.
You can see the project page at http://code.google.com/p/wikihow/
Basically, the goal of this cleanup project is to update, fix, tweak and
patch wikiHow extensions and related things created by wikiHow and make
them work on the most recent stable release of MediaWiki (which is
currently 1.18.1).
In addition to that, the project provides a web-based viewer to see diffs
between these weekly code releases.
Upon a code release, the older source code dump is deleted from
src.wikihow.com and there's no way to see what changed between two
releases, if you don't have both source code dumps and GNU diff or some
other diffing utility available.
We hope that in time, when the project is complete, wikiHow.com can switch
to this codebase and abandon the one based on MediaWiki 1.12.

Right now we're managing the official code releases like this:
*each Monday, when a release has been done, a new folder in tags directory
is created (http://code.google.com/p/wikihow/source/detail?r=30),
*the diff generated by "diff -ur older_release newest_release" is applied
against the newly created tag (
http://code.google.com/p/wikihow/source/detail?r=31),
*and eventually these changes are applied against trunk as needed (
http://code.google.com/p/wikihow/source/detail?r=39); right now this is
very easy since most extensions haven't been cleaned up, but in time this
will take more developer time, as the changes need to reviewed more
carefully

We're inviting anyone interested in MediaWiki development, wikiHow or both
to join the project!
There's /a lot/ of things to do and right now there are only two people
working on it (me and Lewis); it's going to take a while for us to fix
everything and still something might slip by us, so we're hoping to have
more eyeballs on the code.

The code repository is a SVN repo at
http://wikihow.googlecode.com/svn/trunk/ and we're very liberal with commit
access, just ask one of us for commit rights and you'll get 'em right away!
(For those wondering why SVN and why Google Code, the answer is pretty
simple: both of us are more familiar with SVN rather than any distributed
version control system, and given that the Wikimedia Foundation is phasing
out SVN in favour of git, we didn't want to use it to host this project.)

If you have any questions, please don't hesitate to ask!

On behalf of the wikiHow codebase cleanup project,
Jack Phoenix & Lewis Cawte
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-04 Thread Sumana Harihareswara
> Jack Phoenix & Lewis Cawte

Gold stars to you both.  This is fantastic.
-- 
Sumana Harihareswara
Volunteer Development Coordinator
Wikimedia Foundation

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-05 Thread Daniel Friesen
On Wed, 04 Apr 2012 14:33:25 -0700, Jack Phoenix  
 wrote:



To those who don't know me yet, hi! I'm Jack Phoenix, and I've been a
MediaWiki developer since May 2008.

One of the major third-party users of the MediaWiki software is wikiHow (
http://www.wikihow.com/), a free how-to manual.
In my opinion, wikiHow rocks! (No, I don't work for wikiHow and I never
have.) However, wikiHow has one rather big problem. You can see it on  
their

Special:Version. Yep... the site's running MediaWiki 1.12 (!), which is
four years old.
In software development, four years is an eternity. However, wikiHow's
technical team is rather small and their codebase is full of custom
extensions, patches and hacks -- as a result, they don't really have time
for gigantic projects, such as upgrading the MediaWiki engine, let alone
managing an open source project.
Fortunately wikiHow publishes their source code at
http://src.wikihow.comand a new dump will be generated each Monday.

Inspired by this, a fellow developer and a friend of mine, Lewis Cawte
(User:Lcawte) created a Google Code repository for the project.
You can see the project page at http://code.google.com/p/wikihow/
Basically, the goal of this cleanup project is to update, fix, tweak and
patch wikiHow extensions and related things created by wikiHow and make
them work on the most recent stable release of MediaWiki (which is
currently 1.18.1).
In addition to that, the project provides a web-based viewer to see diffs
between these weekly code releases.
Upon a code release, the older source code dump is deleted from
src.wikihow.com and there's no way to see what changed between two
releases, if you don't have both source code dumps and GNU diff or some
other diffing utility available.
We hope that in time, when the project is complete, wikiHow.com can  
switch

to this codebase and abandon the one based on MediaWiki 1.12.

Right now we're managing the official code releases like this:
*each Monday, when a release has been done, a new folder in tags  
directory

is created (http://code.google.com/p/wikihow/source/detail?r=30),
*the diff generated by "diff -ur older_release newest_release" is applied
against the newly created tag (
http://code.google.com/p/wikihow/source/detail?r=31),
*and eventually these changes are applied against trunk as needed (
http://code.google.com/p/wikihow/source/detail?r=39); right now this is
very easy since most extensions haven't been cleaned up, but in time this
will take more developer time, as the changes need to reviewed more
carefully

We're inviting anyone interested in MediaWiki development, wikiHow or  
both

to join the project!
There's /a lot/ of things to do and right now there are only two people
working on it (me and Lewis); it's going to take a while for us to fix
everything and still something might slip by us, so we're hoping to have
more eyeballs on the code.

The code repository is a SVN repo at
http://wikihow.googlecode.com/svn/trunk/ and we're very liberal with  
commit
access, just ask one of us for commit rights and you'll get 'em right  
away!

(For those wondering why SVN and why Google Code, the answer is pretty
simple: both of us are more familiar with SVN rather than any distributed
version control system, and given that the Wikimedia Foundation is  
phasing

out SVN in favour of git, we didn't want to use it to host this project.)

If you have any questions, please don't hesitate to ask!

On behalf of the wikiHow codebase cleanup project,
Jack Phoenix & Lewis Cawte


You should really reconsider that decision to rely on svn to keep this  
project afloat. You don't have to subject yourself to this horrible  
workflow we have for core. But you should really consider using git.
What you are trying to do is precisely the kind of thing that demands a  
non-linear vcs like git.


"*and eventually these changes are applied against trunk as needed (...);  
right now this is very easy since most extensions haven't been cleaned up,  
but in time this will take more developer time, as the changes need to  
reviewed more  carefully"
This is precisely what I'm talking about. You are dealing with 2, maybe  
even three trees all working in parallel. A WikiHow vendor branch, your  
tree, and maybe a MediaWiki vendor branch.
That kind of thing works beautifully by taking one repo, pulling a git  
repo of WikiHow's code into it tracked as a branch like 'wikihow' or  
'vendor'. And potentially pulling the core repo in (depending on how you  
structure the whole thing) as another branch.
You then work committing wikihow's weekly updates as commits to the  
wikihow branch maintaining a clean tree of wikihow's codebase history.  
After a bit of setup to create a master branch with whatever you're  
working on and one commit with a wikihow commit as a parent into master  
you're ready. Whenever you feel like it you do a git merge from wikihow  
into your master branch pulling any code updates into your work.
Unlike with svn git's GUIs will

Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-05 Thread Platonides
I also think it makes more sense to store this in our git. Specailly now
that it's a young project.

Everything with the same version system makes much more sense.

Also, I find the addition of MediaWiki 1.18.1 in r5 quite confusing.
That's not what was.

I'd make a branch of wikiHow releases, another of patches to their base
version (ie. how they evolved) and a new one of "improved version for
wikiHow", which would be a merge of recent MediaWiki with their patches.

I'm not sure about the best way to handle their extensions, though.
Maybe by replicating the same approach with a repository per extension.

Currently, diff -ur wikihow-src wikihow-read-only/wikiHow/ contains lots
of unrelated changes.
How is one expected to make sense of it?


___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-05 Thread Gregory Varnum
Jack,

I think this is a phenomenal idea and I'm thrilled to have access to some of 
wikiHow's extension inventions.  :)  Let me know if I can be of assistance.

Let me know if you'd like to house some of this within the Extensions 
WikiProject on MW.org to document the activity on a WM wiki and also make it an 
activity of that wikiproject.
https://www.mediawiki.org/wiki/Project:WikiProject_Extensions/Projects

-greg aka varnent



On Apr 4, 2012, at 5:33 PM, Jack Phoenix  wrote:

> To those who don't know me yet, hi! I'm Jack Phoenix, and I've been a
> MediaWiki developer since May 2008.
> 
> One of the major third-party users of the MediaWiki software is wikiHow (
> http://www.wikihow.com/), a free how-to manual.
> In my opinion, wikiHow rocks! (No, I don't work for wikiHow and I never
> have.) However, wikiHow has one rather big problem. You can see it on their
> Special:Version. Yep... the site's running MediaWiki 1.12 (!), which is
> four years old.
> In software development, four years is an eternity. However, wikiHow's
> technical team is rather small and their codebase is full of custom
> extensions, patches and hacks -- as a result, they don't really have time
> for gigantic projects, such as upgrading the MediaWiki engine, let alone
> managing an open source project.
> Fortunately wikiHow publishes their source code at
> http://src.wikihow.comand a new dump will be generated each Monday.
> 
> Inspired by this, a fellow developer and a friend of mine, Lewis Cawte
> (User:Lcawte) created a Google Code repository for the project.
> You can see the project page at http://code.google.com/p/wikihow/
> Basically, the goal of this cleanup project is to update, fix, tweak and
> patch wikiHow extensions and related things created by wikiHow and make
> them work on the most recent stable release of MediaWiki (which is
> currently 1.18.1).
> In addition to that, the project provides a web-based viewer to see diffs
> between these weekly code releases.
> Upon a code release, the older source code dump is deleted from
> src.wikihow.com and there's no way to see what changed between two
> releases, if you don't have both source code dumps and GNU diff or some
> other diffing utility available.
> We hope that in time, when the project is complete, wikiHow.com can switch
> to this codebase and abandon the one based on MediaWiki 1.12.
> 
> Right now we're managing the official code releases like this:
> *each Monday, when a release has been done, a new folder in tags directory
> is created (http://code.google.com/p/wikihow/source/detail?r=30),
> *the diff generated by "diff -ur older_release newest_release" is applied
> against the newly created tag (
> http://code.google.com/p/wikihow/source/detail?r=31),
> *and eventually these changes are applied against trunk as needed (
> http://code.google.com/p/wikihow/source/detail?r=39); right now this is
> very easy since most extensions haven't been cleaned up, but in time this
> will take more developer time, as the changes need to reviewed more
> carefully
> 
> We're inviting anyone interested in MediaWiki development, wikiHow or both
> to join the project!
> There's /a lot/ of things to do and right now there are only two people
> working on it (me and Lewis); it's going to take a while for us to fix
> everything and still something might slip by us, so we're hoping to have
> more eyeballs on the code.
> 
> The code repository is a SVN repo at
> http://wikihow.googlecode.com/svn/trunk/ and we're very liberal with commit
> access, just ask one of us for commit rights and you'll get 'em right away!
> (For those wondering why SVN and why Google Code, the answer is pretty
> simple: both of us are more familiar with SVN rather than any distributed
> version control system, and given that the Wikimedia Foundation is phasing
> out SVN in favour of git, we didn't want to use it to host this project.)
> 
> If you have any questions, please don't hesitate to ask!
> 
> On behalf of the wikiHow codebase cleanup project,
> Jack Phoenix & Lewis Cawte
> ___
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l


___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-06 Thread Jack Phoenix
Sumana: we can revisit that once the project's complete. ;-)

Daniel: It's no secret that I'm not a big fan of git (let alone gerrit,
which won't even _load_ when using IE9's default rendering mode), but you
almost convinced me there. For now, I think we'll stick with SVN because
it's what I and Lewis are familiar with; of course, I hope that the project
matures so that one day I won't be needed at all.

Platonides: I don't deny what you're saying at all...but in all honesty I
pretty much lost the passion for contributing code after the -- rather
sudden -- transition to git, because it overcomplicated what was once a
simple and working workflow. Yes, it's horribly selfish for me to say this,
but then again, most MediaWiki developers are familiar with SVN and I want
to be able to contribute, too.

> I find the addition of MediaWiki 1.18.1 in r5 quite confusing
What's confusing about it? The official wikiHow codebase (as in the
codebase powering wikihow.com) is based on 1.12 and we want to ditch it
altogether and find better approaches than over 9000 core hacks, which is
why we chose to use the most recent stable edition of MediaWiki, which is
1.18.1, as the basis for the new and improved wH codebase.

> Currently, diff -ur wikihow-src wikihow-read-only/wikiHow/ contains lots
of unrelated changes.
> How is one expected to make sense of it?
Are you trying to diff the official version(s) against ours? If so, that
probably explains why you're seeing a lot of unrelated stuff. We're keeping
official releases around so that people have an interface for viewing
changes between (any) given weekly code releases. The changes we've made to
wikiHow extensions, let alone the changes we _plan_ to make, are so big
that diffs between the official releases and our versions are basically
useless.
Greg: Recruiting more people, participating in code review, testing
code, and of course, writing code are just some of the ways to help out!
I've tried to get some non-technical people interested (with very little
success so far...) as there are plenty of tasks for newbies (such as
updating indentation to use tabs instead of spaces and whatnot) to do, let
alone for experienced programmers, such as yourself. Ping me or Lewis
somewhere if you want commit access -- we'd be thrilled to have you onboard!

Having more info about the project on MW.org, especially in the context of
WikiProject Extensions, would be splendid -- as people are likelier to read
such more official (so to say) pages than my user subpages. ;-)

Thanks and regards,
--
Jack Phoenix
MediaWiki developer
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-06 Thread Alex Monk
> we chose to use the most recent stable edition of MediaWiki, which is
1.18.1
Was. 1.18.2 was released with security fixes.
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-07 Thread Antoine Musso
Le 07/04/12 03:06, Jack Phoenix a écrit :
> For now, I think we'll stick with SVN because it's what I and Lewis
> are familiar with;

Haven't we send a git priest to evangelise the young British guys? :D


-- 
Antoine "hashar" Musso


___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] You are invited to join the wikiHow source code cleanup project

2012-04-07 Thread Krinkle
Replies inline.

On Wed, Apr 4, 2012 at 11:33 PM, Jack Phoenix wrote:

> To those who don't know me yet, hi! I'm Jack Phoenix, and I've been a
> MediaWiki developer since May 2008.
>

Hi Jack, nice to hear from you again :)


> Yep... the site's running MediaWiki 1.12 (!), which is
> four years old. In software development, four years is an eternity.
>

 "Just" 4 years? I thought it was older but you're right. 1.12 is from 2008
and it does seem an eternity ago.


> Fortunately wikiHow publishes their source code at
> http://src.wikihow.comand a new dump will be generated each Monday.
>

For those wondering, the url is http://src.wikihow.com (without "and")
and I'd like to add that this awesome service has been up for quite a
while (it is not new), it's been up at least for a few years now, and
doing great! However they are static (.zip) dumps of the wikihow source
code. Although wikiHow does use SVN internally, the actual repo is not
public.


> (User:Lcawte) created a Google Code repository for the project.
> You can see the project page at http://code.google.com/p/wikihow/


Aside from the importing of the weekly dumps of the real source code,
I'm not sure what is going on there or why there is a copy of MediaWiki
1.18 in there. If the goal is to basically re-construct wikiHow on a
MediaWiki 1.18 base instead of 1.12 (without core hacks this time), then
why the copy of MediaWiki? Just an idea but maybe only keep the
following in the "new" repository, with instructions for users that are
helping out to install MediaWiki core, and then checkout the repo and
symlink and/or include them from the wikihow repo:

* ./extensions/* [all awesome wikihow-made extensions]
* ./extensions/WikiHow/WikiHow.php [custom settings of wikihow sites]
* ./skins/WikiHow

Maybe even on top of MediaWiki core "master" instead of the latest
release so that if you need any additional hooks in MediaWiki core
(which likely will be the case on several occasions), you (or someone
else) can propose them and after they're reviewed/merged into core you
can use them right away.

-- Krinkle

PS: Regarding git, if you're afraid of Gerrit but have no problem with
using a third party for hosting (Google Code in this case), you could
also try GitHub which tends to be a very friendly introduction to Git
for most people I know. Especially the concept of "pull request" is very
well thought trough there. And as a bonus, there is no dependency on
GitHub since, contrary to SVN, everybody has the entire repository so
you can work offline and maybe even one day host it elsewhere.
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l