about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-01-13 03:31:15 +0000
committerEric Wong <e@80x24.org>2015-01-13 03:31:15 +0000
commitaffd74c73ec8f11ae8f7f3fd790f837fc528ab34 (patch)
treeeb3724b63e3834838a70acf89558080d49a7e7f2
parent8bc42c582343dd944b23189c05a544e5553fe933 (diff)
downloadzbatery-affd74c73ec8f11ae8f7f3fd790f837fc528ab34.tar.gz
switch docs + website to olddoc
wrongdoc was difficult to maintain because of the tidy-ffi
dependency and the HTML5 changes in Darkfish could not be
handled well by Tidy.

olddoc is superior as it generates leaner HTML which loads faster,
requires less scrolling and less processing power to render.
Aesthetic comparisons are subjective of course but completely
unimportant compared to speed and accessibility.

The presence of images and CSS on the old (Darkfish-based) site
probably set unreasonable expectations as to my ability and
willingness to view such things.  No more, the new website is
entirely simple HTML which renders well with even the wimpiest
browser (hell, olddoc even tries to generate readable raw HTML).
-rw-r--r--.document2
-rw-r--r--.gitignore4
-rw-r--r--.olddoc.yml (renamed from .wrongdoc.yml)1
-rw-r--r--GNUmakefile12
-rw-r--r--Rakefile62
-rw-r--r--pkg.mk71
6 files changed, 28 insertions, 124 deletions
diff --git a/.document b/.document
index fa4d03d..adb3add 100644
--- a/.document
+++ b/.document
@@ -1,7 +1,5 @@
-ChangeLog
 LICENSE
 NEWS
 README
 FAQ
 zbatery_1
-LATEST
diff --git a/.gitignore b/.gitignore
index e71d8b3..302d194 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,9 +11,9 @@
 log/
 pkg/
 /vendor
-/NEWS
-/ChangeLog
+/NEWS*
 /.manifest
 /GIT-VERSION-FILE
 /man
 /LATEST
+*_1
diff --git a/.wrongdoc.yml b/.olddoc.yml
index 7f9fea0..d36b837 100644
--- a/.wrongdoc.yml
+++ b/.olddoc.yml
@@ -2,7 +2,6 @@
 cgit_url: http://bogomips.org/zbatery.git
 git_url: git://bogomips.org/zbatery.git
 rdoc_url: http://zbatery.bogomip.org/
-changelog_start: v0.3.1
 merge_html:
   zbatery_1: Documentation/zbatery.1.html
 public_email: rainbows-public@bogomips.org
diff --git a/GNUmakefile b/GNUmakefile
index c53b494..e7e9df1 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,20 +1,14 @@
 all::
 RSYNC_DEST := zbatery.bogomip.org:/srv/zbatery
-rfproject := rainbows
 rfpackage := zbatery
+PLACEHOLDERS := zbatery_1
+
 man-rdoc: man html
-        for i in $(man1_rdoc); do echo > $$i; done
 doc:: man-rdoc
 include pkg.mk
-ifneq ($(VERSION),)
-release::
-        $(RAKE) publish_news VERSION=$(VERSION)
-        $(RAKE) fm_update VERSION=$(VERSION)
-endif
 
 base_bins := zbatery
 bins := $(addprefix bin/, $(base_bins))
-man1_rdoc := $(addsuffix _1, $(base_bins))
 man1_bins := $(addsuffix .1, $(base_bins))
 man1_paths := $(addprefix man/man1/, $(man1_bins))
 clean:
@@ -22,9 +16,9 @@ clean:
 
 man html:
         $(MAKE) -C Documentation install-$@
+
 pkg_extra += $(man1_paths)
 doc::
-        $(RM) $(man1_rdoc)
 
 all:: test
 test:
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index d1ca285..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- encoding: binary -*-
-autoload :Gem, 'rubygems'
-
-cgit_url = "http://bogomips.org/zbatery.git"
-git_url = 'git://bogomips.org/zbatery.git'
-
-desc "read news article from STDIN and post to rubyforge"
-task :publish_news do
-  require 'rubyforge'
-  spec = Gem::Specification.load('zbatery.gemspec')
-  tmp = Tempfile.new('rf-news')
-  _, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
-  tmp.puts subject
-  tmp.puts
-  tmp.puts spec.description.strip
-  tmp.puts ""
-  tmp.puts "* #{spec.homepage}"
-  tmp.puts "* #{spec.email}"
-  tmp.puts "* #{git_url}"
-  tmp.print "\nChanges:\n\n"
-  tmp.puts body
-  tmp.flush
-  system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
-  msg = File.readlines(tmp.path)
-  subject = msg.shift
-  blank = msg.shift
-  blank == "\n" or abort "no newline after subject!"
-  subject.strip!
-  body = msg.join("").strip!
-
-  rf = RubyForge.new.configure
-  rf.login
-  rf.post_news('rainbows', subject, body)
-end
-
-desc "post to FM"
-task :fm_update do
-  require 'tempfile'
-  require 'net/http'
-  require 'net/netrc'
-  require 'json'
-  version = ENV['VERSION'] or abort "VERSION= needed"
-  uri = URI.parse('http://freecode.com/projects/zbatery/releases.json')
-  rc = Net::Netrc.locate('zbatery-fm') or abort "~/.netrc not found"
-  api_token = rc.password
-  _, subject, body = `git cat-file tag v#{version}`.split(/\n\n/, 3)
-  tmp = Tempfile.new('fm-changelog')
-  system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
-  changelog = File.read(tmp.path).strip
-
-  req = {
-    "auth_code" => api_token,
-    "release" => {
-      "tag_list" => "Stable",
-      "version" => version,
-      "changelog" => changelog,
-    },
-  }.to_json
-  Net::HTTP.start(uri.host, uri.port) do |http|
-    p http.post(uri.path, req, {'Content-Type'=>'application/json'})
-  end
-end
diff --git a/pkg.mk b/pkg.mk
index 4cd5bef..1e40915 100644
--- a/pkg.mk
+++ b/pkg.mk
@@ -1,7 +1,8 @@
 RUBY = ruby
 RAKE = rake
 RSYNC = rsync
-WRONGDOC = wrongdoc
+OLDDOC = olddoc
+RDOC = rdoc
 
 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
         @./GIT-VERSION-GEN
@@ -12,14 +13,6 @@ RUBY_VERSION := $(shell $(RUBY) -e 'puts RUBY_VERSION')
 RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
 lib := lib
 
-ifeq ($(shell test -f script/isolate_for_tests && echo t),t)
-isolate_libs := tmp/isolate/$(RUBY_ENGINE)-$(RUBY_VERSION)/isolate.mk
-$(isolate_libs): script/isolate_for_tests
-        @$(RUBY) script/isolate_for_tests
--include $(isolate_libs)
-lib := $(lib):$(ISOLATE_LIBS)
-endif
-
 ext := $(firstword $(wildcard ext/*))
 ifneq ($(ext),)
 ext_pfx := tmp/ext/$(RUBY_ENGINE)-$(RUBY_VERSION)
@@ -36,7 +29,7 @@ $(ext_pfx)/$(ext)/%: $(ext)/% $(ext_d)
         install -m 644 $< $@
 $(ext_pfx)/$(ext)/Makefile: $(ext)/extconf.rb $(ext_d) $(ext_h)
         $(RM) -f $(@D)/*.o
-        cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb
+        cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb $(EXTCONF_ARGS)
 ext_sfx := _ext.$(DLEXT)
 ext_dl := $(ext_pfx)/$(ext)/$(notdir $(ext)_ext.$(DLEXT))
 $(ext_dl): $(ext_src) $(ext_pfx_src) $(ext_pfx)/$(ext)/Makefile
@@ -48,10 +41,10 @@ else
 build:
 endif
 
-pkg_extra += GIT-VERSION-FILE NEWS ChangeLog LATEST
-ChangeLog: GIT-VERSION-FILE .wrongdoc.yml
-        $(WRONGDOC) prepare
-NEWS LATEST: ChangeLog
+pkg_extra += GIT-VERSION-FILE NEWS LATEST
+NEWS: GIT-VERSION-FILE .olddoc.yml
+        $(OLDDOC) prepare
+LATEST: NEWS
 
 manifest:
         $(RM) .manifest
@@ -63,28 +56,20 @@ manifest:
         cmp $@+ $@ || mv $@+ $@
         $(RM) $@+
 
-doc:: .document .wrongdoc.yml $(pkg_extra)
+doc:: .document .olddoc.yml $(pkg_extra) $(PLACEHOLDERS)
         -find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
         -find ext -type f -name '*.rbc' -exec rm -f '{}' ';'
         $(RM) -r doc
-        $(WRONGDOC) all
+        $(RDOC) -f oldweb
+        $(OLDDOC) merge
         install -m644 COPYING doc/COPYING
+        install -m644 NEWS doc/NEWS
+        install -m644 NEWS.atom.xml doc/NEWS.atom.xml
         install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
 
 ifneq ($(VERSION),)
 pkggem := pkg/$(rfpackage)-$(VERSION).gem
 pkgtgz := pkg/$(rfpackage)-$(VERSION).tgz
-release_notes := release_notes-$(VERSION)
-release_changes := release_changes-$(VERSION)
-
-release-notes: $(release_notes)
-release-changes: $(release_changes)
-$(release_changes):
-        $(WRONGDOC) release_changes > $@+
-        $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
-$(release_notes):
-        $(WRONGDOC) release_notes > $@+
-        $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
 
 # ensures we're actually on the tagged $(VERSION), only used for release
 verify:
@@ -120,31 +105,18 @@ $(pkgtgz): manifest fix-perms
 
 package: $(pkgtgz) $(pkggem)
 
-test-release:: verify package $(release_notes) $(release_changes)
-        # make tgz release on RubyForge
-        @echo rubyforge add_release -f \
-          -n $(release_notes) -a $(release_changes) \
-          $(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
-        @echo gem push $(pkggem)
-        @echo rubyforge add_file \
-          $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
-release:: verify package $(release_notes) $(release_changes)
-        # make tgz release on RubyForge
-        rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
-          $(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
+release:: verify package
         # push gem to RubyGems.org
         gem push $(pkggem)
-        # in case of gem downloads from RubyForge releases page
-        rubyforge add_file \
-          $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
 else
 gem install-gem: GIT-VERSION-FILE
         $(MAKE) $@ VERSION=$(GIT_VERSION)
 endif
 
-all:: test
+all:: check
 test_units := $(wildcard test/test_*.rb)
-test: test-unit
+test: check
+check: test-unit
 test-unit: $(test_units)
 $(test_units): build
         $(RUBY) -I $(lib) $@ $(RUBY_TEST_OPTS)
@@ -154,8 +126,6 @@ ifneq ($(RSYNC_DEST),)
 publish_doc:
         -git set-file-times
         $(MAKE) doc
-        find doc/images -type f | \
-                TZ=UTC xargs touch -d '1970-01-01 00:00:06' doc/rdoc.css
         $(MAKE) doc_gz
         $(RSYNC) -av doc/ $(RSYNC_DEST)/
         git ls-files | xargs touch
@@ -163,7 +133,7 @@ endif
 
 # Create gzip variants of the same timestamp as the original so nginx
 # "gzip_static on" can serve the gzipped versions directly.
-doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.\(gif\|jpg\|png\|gz\)$$')
+doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.gz$$')
 doc_gz:
         for i in $(docs); do \
           gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
@@ -171,5 +141,10 @@ check-warnings:
         @(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
           do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
 
-.PHONY: all .FORCE-GIT-VERSION-FILE doc test $(test_units) manifest
+ifneq ($(PLACEHOLDERS),)
+$(PLACEHOLDERS):
+        echo olddoc_placeholder > $@
+endif
+
+.PHONY: all .FORCE-GIT-VERSION-FILE doc check test $(test_units) manifest
 .PHONY: check-warnings