On Fri, Mar 9, 2012 at 10:37 AM, Michael B. Klein <[log in to unmask]> wrote: > The internal discussion then becomes, "I have a need, and I've written > something that satisfies it. I think it could also be useful to others, but > I'm not going to have time to make major changes or implement features > others need. Should I open source this or keep it to myself? Does freeing > my code come with an implicit requirement to maintain and support it? > Should it?" > > It used to be that way, at least it was this way when I grew up in open source (in the 90s, before Eric Raymond invented the term). And it makes sense, for successful projects that have at least a moderate number of users. Just dumping your code on github helps very few people. > I'd vote open source just about every time. If someone sees the need and > has the time to do a functional/requirements analysis and develop a "core > team" around pymarc, more power to them. The code that's already there will > give them a head start. Or they can start from scratch. > > Until then, it will remain a fork-patch-and-pull, community-supported > project. > It's not just an agreement on design goals the core team must reach, it's also the issue of maintaining a record (in email discussions/posts and in the developer's minds) of what issues arose, what legacy decisions were made, where backwards compatibility is required. That's something maintainers do, it enables them to reason about future design decisions. People who feel a sense of ownership and mental investment. Sure, I could throw in a flag 'dont_utf8_encode' to make the code work for my case. But it wouldn't improve the software. (In pymarc's case, I'd also recommend a discussion about data structures. For instance, what should the type of the elements of the subfield array be that's passed to a Field constructor? 8-bit string or unicode objects? The thread you link to shows ambiguity here.) Staying with fork-patch-and-pull may help individual people meet their individual needs, but can prevent wide-spread adoption - and creates frustration for users who may lack the expertise to track down encoding errors or who are even unable to understand where the code they're using lives on their machine. Once a piece of software has reached the stage where it's distributed as a package (which pymarc, I believe, is), the distributors have taken on a piece of responsibility. Related, being unwilling to fix even documentation typos unless someone clones the repository and delivers a pull request (on a silver platter?) seems unusual to me, but - perhaps I'm just too old and culturally out of tune with today's open source movement. (I'm not being ironic here, maybe there has been a shift and I should just get with it.) - Godmar