From 4b6c0e31385f5f27a151088c0a2b614495c4e589 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Thu, 14 Oct 2021 12:47:50 -0400 Subject: initial commit, including theme --- .../2004-08-25-thoughts-on-rubyforge-rubygems.html | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html (limited to 'content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html') diff --git a/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html b/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html new file mode 100644 index 0000000..73db4ae --- /dev/null +++ b/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html @@ -0,0 +1,89 @@ +--- +date: "2004-08-25T14:44:12Z" +title: Thoughts on RubyForge/RubyGems +--- + +

+In order to post a RubyGem +at the moment, you have to create an account on RubyForge, then create a project, +then upload the gem. RubyForge gives the same things +that SourceForge does; a web +site, a CVS +repository, a file area, forums, mailing lists, kitchen sink, etc. +Pros: RubyForge is prettier, +simpler, and more stable than SourceForge (although I've seen +Windows 95 machines that are more stable than SourceForge, so that's not saying +much). Also RubyForge doesn't +have 8 gadzillion dead projects on it, so it's significantly faster than +SourceForge. Cons: No +automated interface (XML-RPC, SOAP, email, smoke signals, etc... Freshmeat has an XML-RPC interface, so this isn't an unrealistic +request), no quick way of creating a minimalist project (for example, a +project that just classifies itself in the Trove and posts a gem..ie, what I want to do), +and no integration with RAA or Freshmeat. +

+ +

+I want to elaborate on the last one a bit, because that's a problem with +both RubyForge and RubyGems. Let's look at the +steps I take when I release the latest version of a Ruby binding: +

+ +
    +
  1. Sanity check, make sure the thing still compiles
  2. +
  3. Run whatever testing script I have written, make sure I haven't broken anything crucial
  4. +
  5. Update the documentation (README, TODO, BUGS, etc)
  6. +
  7. Tag the release in CVS. If I'm incrementing the major or minor number, then I create a new branch as well.
  8. +
  9. Export the specified tag to anohter directory (I've got one called releases/ on my workstation).
  10. +
  11. Double-check everything again to make sure things are where they should be (I catch a lot of stupid mistakes here, by the way).
  12. +
  13. Run RDoc to generate the developer documentation.
  14. +
  15. Tar the release up.
  16. +
  17. Sign the tarball with GnuPG (everyone should be doing this; shame on you if you aren't).
  18. +
  19. Upload the tarball, signature, ChangeLog, and API documentation to Pablotron.
  20. +
  21. Update the links, version number, and possibly the blurb on the software page.
  22. +
  23. Post an entry to the front page briefly describing the release.
  24. +
  25. Update the binding's entry on RAA.
  26. +
  27. Update the entry on Freshmeat.
  28. +
  29. Post a short message to ruby-talk.
  30. +
+ +

+If I'm using creating a gem, then we have to add the following items to the list: +

+ + + +

+Well, if there was some interaction between RubyForge, RAA, and Freshmeat, a lot of redundant steps could be eliminated. I'm picking on RubyForge here because it's the new kid on the block; Freshmeat has been around since the dawn of time, and RAA has Ruby's semi-answer to Perl's CPAN since I started using Ruby. For example, let's say RubyForge had an XML-RPC interface, and it could communicate with RAA (via some RPC interface) and Freshmeat. Now write a script that creates a gem and does the necessary updates to my personal page, then connects to RubyForge via XML-RPC and uploads my tarball, gem, tarball signature, and gem signature, which are then automagically propogated to both Freshmeat and the RAA. +

+ +

+In short, an automated update interface combined with the ability to +interact with the other existing software indices would allow me to +eliminate half of the steps on my software release checklist and make RubyForge incredibly useful to +developers, even if they don't need web hosting, a mailing list, or a +CVS repository. +

+ -- cgit v1.2.3