Hackage wiki page per project discussion
Purpose of this page ?
collect thoughts about whether we should provide a wiki page (and maybe even more advanced features such as bug trackers) for all projects hosted on hackage
I'll post a link to this page to haskell-cafe so everyone should participate
Why a Wiki
We do have about 1500 packages on hackage. Hackage was made live easier. While packaging some packages for nix (using Hack-Nix) I had to write some patches.
If you have a patch what to do? Duncan Coutts proposed contacting the maintainer. If you don't receive replies within a time frame write to the haskell-cafe mailinglist. If you can't find him become the new maintainer.
While contacting the maintainer works very well within 3 days in most cases there are situations where maintainers can't reply because they are on holiday or got very busy.. In these cases I'd like to put my patch somewhere so that others can find them.
What could a wiki page be used for?
a) patches (which are removed when maintainers integrate them upstream)
b) Howtos and pitfalls (written by users or maintainers)
c) references to similar projects pointing out differences.
d) a smart lazy changelog. If a user hits a change he can add this to the
wiki so that others can find out faster which version constraints to add to their .cabal file.
This looks like this: 2.20: renamed foo to bar.
2.48: type change of iwillneverChange :: Int to Maybe Int
e) a list of changes which will go into the next release of a package.
This may help you figuring out whether you should download the darcs repository.
f) many other ideas I can't think about yet.
design could look like this:
The link would point to the haskell wiki having the url suffix /project-name.
When a wiki page can replace a .cabal file update
- naturally it takes some time until most recent cabal updates are used by mainstream.. Eg there is a way to add repository locations now.. But have a look at happy.cabal and smile :) Btw: I adopted this usage of the source-repository field for one project.
- minor dependency changes
- tell users about experimental branches
- it's easier to provide important information such as:
"This package is superseded by XY because: ..."
- We already have a mechanism to deprecate packages or to mark them as superseded. --DuncanCoutts 00:25, 12 December 2009 (UTC)
Marc Weber: Can you explain how this works or point me to the documentation?
The main point about this wiki idea is that you can attach arbitrary information and you don't have to wait for anyone to do so. Get things done. Provide patches. Link them on the wiki. Come back later and discuss your proposals with the maintainer. Keep summaries of discussions on subjects accesible by everyone. ...
Of course I know that the maintainers are the people doing the real work. But look at it from a different view: Having such a forum for all projects by default also means that a maintainer can let others do some of the work knowing that they don't have to reply within some days.
The wiki can host all information which may be useful but which wasn't foreseen by hackage or cabal devs. We must keep agile and move forward only.
My (DuncanCoutts) concern is about the consent from package authors. Hackage is a social bargain. We ask package authors to distribute their work through hackage because it provides benefits to the community. If we impose too much on package authors then they may decide it's just not worth it.
In particular, if we automatically create a wiki page for every package then we are imposing additional obligations on package authors. As a package author I might be concerned that this wiki page duplicates an existing home page or bug tracking system. If there's a wiki page about my project then I am effectively obligated to check it from time to time, since users will inevitably report bugs etc there. It is that extra obligation that package authors may resent.
There is no problem with such a feature being opt-in, but whether it is something we require and impose on package authors needs much more of a social consensus before we go ahead.
Reply Marc Weber: Everybody knows that it is wiki content and will take care.
About effort: Note that package authors can watch their wiki pages easily. Authors and maintainers already do the hard work. Watching a wiki page is not mach work compared to writing a library. But they may find wiki contents of foreign projects that useful that they provide some contents their selves
The above concerns amount to saying that there is (or may be) no value added for the user but nevertheless makes extra work for the maintainer. My (Daniel Wagner) concern is that there may actually be value removed for the user. A bad, incomplete, or non-existent wiki page can be worse than no page at all, because new users may view the wiki page as the canonical resource. This is especially so because many of the smaller projects have minimal or non-existent homepages (often just the root of a darcs repository) and minimal or non-existent documentation; this puts users in the habit of searching elsewhere for information about using the package. Maintainers that do end up putting effort into their project's pages and documentation will suffer as a result, especially if the projects are too small to garner many wiki-editing users. In this case, an unhelpful wiki page may scare away potential users, despite the existence of other useful resources.
concern "The wiki will be outdated"
True. Every user must know that wikis naturally are out of date :) But the question is: Can one wiki page (containing an example) generate more value than some outdated pages cause damage to you?
It's hard to say because haskellwiki wiki pages can be found when searching from the start page as well.
Maybe we can ask users to add the package version so that users will see themselves that content is outdated?
Don't think about other people. Think about yourself: Do you mind reading some outdated wiki pages? Do you appreciate the valuable contents which will be exist as well? If you don't mind reading some outdated pages and if you'd like to see more examples about how to use packages you basically support this idea! Let's not forget that haskell.org is a wiki itself. And naturally parts are outdated as well. You still don't want to miss it, do you?
If content isn't put on a wiki what do people do instead?
- They may do nothing (bad)
- They may write a blog (bad because others don't find it or because content gets out of date). Which way is more likely providing you with valuable information: A blog found by google or an attached wiki page people can keep up to date?
- They may write to the mailinglist. Things are archived forever. On the wiki they are as well but not only a small amount of visitors ever looks at the history of a page..
my project already has a wiki ..
Fine. In this case the haskellwiki wiki page will only have one link telling the user about your page.
progress and feedback
I've send a short mail to about 100 maintainers to get to know what they think about this idea.
Consider adding your name only for spam reasons (but send your emal address to email@example.com so that I can associate them with packages on hackage to got to know who didn't reply)
I support this idea:
- firstname.lastname@example.org (Marc Weber)
- email@example.com (Brad Clawsie)
I support but want opt-out:
I support but I want opt-in:
- firstname.lastname@example.org (Daniel Wagner) I believe opt-in is the Right Thing, so would vote here even if I didn't have the misgivings I mention above
I don't like the idea even if there was a warning such as "This content is contributed by maintainers and users and may be out of date.":
If you vote here, make sure you've read "wiki alternatives". You can clean up the wiki page. You can't clean up foreign blogs.
- EvanMartin (exactly what Duncan wrote -- I don't have time to vet a third-party page and keep it up to date; I have seen obsolete wikis for too many projects in my time. If I want to use a wiki I could just set it as the home page for my project. Consider adding a "wiki" link to the package description format.)
I don't care:
I won't tell you:
You can watch this page