Working Through Defects List
Working our way through the list of known defects. They’re posted in JIRA at Codehaus and consist of small problems or ones that occur infrequently. Previous post on fixing a defect with font handling was one of these. Now have closed PLATYPUS-64 and PLATYPUS-61, which both had to do with line spacing after a code listing and a bullet list, respectively. Once the defects have been taken...
Fixed Two Small Bugs in Font Handling (PDF)
The changes to fix font handling in v. 0.2.2 led to two small defects that are fixed now. Both of them related to how the iText library handles font registration. I think/hope/pray that the font issues can be laid to rest now, once and for all. (PLATYPUS-62 in JIRA)
v. 0.2.2 Released
v. 0.2.2 has been released. It’s available for download along with docs and source code here. New features include: * URLs — you can add clickable URLs to your documents. These can be raw URLs or they can be hidden under cover text. * Code and Listings — you can easily specify in-line code as well as code listings. Code in listings can optionally have numbered lines, and ...
Fixed Font Problem in PDF
A show-stopper bug (PLATYPUS-42) finally bit the dust. It involved how Platypus loaded fonts into the iText library. The result was that every so often, the wrong variant of the typeface would be used (such as italics, rather than bold). This was finally fixed and it appears all font loading is working correctly.
HTML moving to XHTML in v. 0.2.2 RC1
Atul is doing a lot of work to get the HTML plugin to generate XHTML that passes the W3C validator with no errors. This format refinement will help in using the same plugin as the basis of the eBook plugin.
v. 0.2.2 RC1 Posted
It’s posted here. Please let us know if you run into any difficulties. We hope to have the final version out in 30 days. Thanks!
Last few fixes, updates to docs. Getting ready for...
Doing the last things necessary to get v. 0.2.2 RC1 out the door in the next few days.
Feature Freeze for v. 0.2.2
Now working on testing and documentation. Expecting to release an RC1 version shortly.
Completed Bullet Lists (Nestable, User-Selectable...
Implementation of bullet lists complete—they’re nestable and the user can select the bullet character for each list). PLATYPUS-44 on JIRA. Only need to write a few more unit tests.
Initial Implementation of Bullet Lists Done
Implemented an unordered bullet list with (so far) a fixed bulled character of “-” and an indent of 1/4”. To do: Correct processing of embedded bullet lists; allow bullet character to be specified. Eventually, enable specification of width of indent. Lists are started by the [list] command and terminated by the [-list] command. Each item in the list is terminated by a ...
Began Work on Bulleted Lists
When done, should have nestable bulleted lists with user-specifiable bullet character in PDF.
URLs with Cover Text Now Working in PDF Plugin
PDF plugin can now print clickable raw URLs and URLs with cover text. More testing needed, but initial test passed successfully.
Agreement on Features for Next Release (v. 0.2.2)
Long talk among contributors, deciding what features to include in the sprint to May 31. Feature addition will be done during this sprint. Then, till June 15th bug testing and fixing, followed by release of RC1 on June 15th. Expect to ship finalized release on 30 June. List of features: http://docs.codehaus.org/display/PLATYPUS/Upcoming+Features+in+v.+0.2.2 All new features and to-do items...
Updated to iText v. 2.1.7 from v. 2.1.3
Seamless upgrade—added the lib, made the changes to build.xml, and deleted the old lib. All tests and the CI build worked immediately. Sometimes, I really like automation! The goal of the upgrade is to see whether it resolves some of the problems I’ve been running into with fonts in the PDF plugin. Testing over the next few days will clarify this.
Finished Implementation of Code Listings
Basic implementation now done. Fully documented in the user guide. Have to squash a couple of bugs (that have been entered into JIRA) and write unit tests. Hoping I can finish this completely this week, and so close out this feature for v. 0.2.2.
Doing the Final Inventory of Next Release
In discussion with Atul to identify exactly what features will be in the v. 0.2.2 coming out soon for testing. Going over the inventory, adding whatever has to still be added, removing what won’t be ready in time, and writing tests. We have a call scheduled this weekend to finalize the list and give each other our respective work assignments and try to guestimate the actual release dates of...
Removed Windows Dependencies in Config Dir Path
A Linux user pointed out a hard-coded backslash in several places where the path to the config file is specified. Also found a hard-coded backslash in the build.xml file. In the code, checked the slash convention of the running platform. In build.xml changed them to forward slashes, which both Windows and Linux can understand. Cf. PLATYPUS-37
Removed Plugin Dependency on PDF Plugin
The new work on RTF and HTML plugins has brought to light some design decisions that need to be fixed, namely, ones where a function that is needed by multiple plugins is located inside the PDF plugin. Fixed several of these dependencies; one of which compromised the build of the HTML plugin. The change has been tested and the plugin can now be compiled with no dependencies on any other plugin.
Restructured Plugin Implementation to Use More...
Commands are now generally abstract classes from which plugins derive their own concrete implementations. This design idea, from Atul Khot, should save a lot of duplication of code.
Code Listings Progressing
The PDF plugin now prints code listings with line numbers and correctly skips ahead by the number of tokens found before the [-code] token. The skipping ahead is a bit of a hack that needs to be revisited once the whole code command is finished.
Began Adding Line Numbers to Code Listings
Very basic functionality operates, but is not yet close to satisfactory. Still need to: 1) Count LOC to know how wide the line number field should be. 2) Change the size of the line number field font to a preset % of the text font. 3) Figure out how to handle embedded commands in the listings.
Adding Support for Code Listings
Began adding support for code listings, using the [code] and [-code] pair of commands. This requires adding the ability to save and restore the current formatting. This capability will be handy shortly when we implement styles, that is, style tags.
Margins and Basic Text Now Work in RTF
Some preliminary success with implementing RTF. Will continue adding commands right up until the next release. The three central formats going forward will be PDF, HTML, and RTF. Later, will probably add an eBook format (once they shake out) and probably one or two mark-down formats. It depends a lot on what users ask for.
First Command Working in RTF
First command works satisfactorily. Will now slowly migrate the remaining PDF commands to RTF. This can be done at leisure, as long as most make it over in time for the release of v. 0.2.1 RC1. Will keep the User Guide current as the commands are ported. This is necessary due to the many differences in how the formats handle certain commands.
Working on New RTF Plugin
Began doing some preliminary work on an RTF (rich text format) plugin. This plugin, which was not scheduled during this cycle, has some compelling benefits: RTF is fairly easy to output, so it’s easier to add new features and test them than it is in PDF, which is greatly slowed due to the rendering support that is needed. By running ahead with RTF, it’s possible to derive insights...
Corrected How Fonts are Registered with iText
Corrected a defect (PLATYPUS-31) that enabled a font to be registered with a name that was different than its entry in the font list. Now, the registry function in iText, takes the file name and the alias we want to assign it. This alias is always the name in the font list. Passed functional test. Need to write unit tests.
Converted Font Default to IDENTITY-H Encoding in...
This new encoding permits all characters in the font to be available simply by specifiying the Unicode character. Not all fonts can be opened this way. For example, the Base 14 fonts in PDF must be opened with CP-1252 encoding. This is the back-up encoding in case IDENTITY-H fails. Added 18 arrows to the character set. Need to: Add the four corner arrows to the character set Make Symbola a...
Modifying Fonts Included with Platypus
Platypus bundles several fonts : a monospaced font and a serif font. It will later add one, perhaps two, symbol fonts. For the last release, the serif font was Gentium. This font, while beautiful, has several limitations that suggest replacing it. Namely, it has no bold implementation and it has support for only a limited number of symbols (but a vast array of letter glyphs). It will be...
Set up CI Server at Codehaus
The great folks at Codehaus have allowed Platypus to use their CI system farm. The CI server they use is Bamboo from Atlassian. I tested an initial configuration, which failed. It could not find build.xml file. Will need to change its location (and the contents accordingly). Once Bamboo is configured correctly, every code commit should generate a new CI run. CI results are visible here.
Fixed Build File
Closed PLATYPUS-6 in JIRA (at Codehaus). Fixed build file so it can be run from the directory it’s found in the source distribution. Also changed its name from fullplatybuild.xml to build.xml. Expect to shift all production to this new build.xml soon.
Added Greek Alphabet to Character Set
Added the 24 lower-case Greek letters, the two lower-case variants (of sigma and theta), plus the 24 upper-case letters to Platypus core and the PDF plugin. Discovered in the process that the [dots] command, which I also added in this pass, does not always produce the correct character. Opened PLATYPUS-30 to record this and attached input and output files illustrating the problem.
Work on v. 0.2.1 officially begins today
It’s January first, so it’s time to start working on the next release. v. 0.2.1 is the development release; v. 0.2.2 will be the release that ships near end of 1Q as a release candidate and then finalized. Features for this release are given in Milestone 2 of the schedule posted here. Work actually began on this release several weeks ago. So far, this much has happened: URLs can now...
Added Ability to Output Symbols to PDF That...
Can now specify in the PDF symbols file a change to a specific font to print a given character. This enables users to make extensive use of symbol fonts. Expect addition of arrow characters, math symbols, greek letters, etc. shortly. One unit test is failing because of the changes. It needs to be fixed. And several unit tests to verify this functionality need to be added.
Wrote Guide For Creating Output Plugins
Wrote a short guide for writing output plugins. This was, in part, driven by the upcoming development work on an HTML plugin (by Atul). Updated the Architecture document to reflect release 0.2.0
v. 0.2.0 Posted, Announcement Sent to Mailing...
Now, onward to v. 0.2.2. Feature implementation can be tracked here. Delivery goal is end of 1Q 2010.
Finishing Packaging Up v. 0.2.0 for Release This...
Docs, done! Source with Javadoc, done! Binaries to be built, zipped, tested. And if working as expected, then: — posting of all downloads to download area on Kenai.com — post of announcement to the announcement mailing list.
Fuzz Testing Showing A Defect in Paragraph...
Worked on a bug in paragraph and first-line indenting when preceded immediately by a page or column resize. The bug (PLATYPUS-21) looks fixed, but need to do some more testing and visual inspection of PDFs. The fuzz testing was Atul’s idea and it looks like it’s identifying some other defects.
Word cloud (from wordle.com) of the Platypus User Guide, v. 0.2.0 Predictably “Platypus” and “command” are the most frequent words.
Version 0.2.0 Finalized for Release
After two release candidate editions, Platypus v. 0.2.0 is now good to go. Killed several bugs. Updated the literals files and the docs. Now must create the package, post, and send announcement to the list. Next up: v. 0.2.2 whose details are on the Platypus wiki at Codehaus.
First Checkins from New Developer
A new developer, Atul Khot, has joined the project. Today, he checked in his first code. It was a significant clean-up of my command-line interface. He replaced essentially all my logic with the CLI package in the Apache Commons. This will clear several issues from JIRA all in one stroke. Good stuff! Thank you, Atul, and welcome aboard!
Wrote Groovy Functional Tests for CLI
Wrote a new Groovy script, cliTest.groovy, that contains tests of the CLI. In the process, alas, discovered two more defects in CLI handling. These were entered into JIRA (at Codehaus) as PLATYPUS-7 and PLATYPUS-8.
Welcome new team member!
Welcome to Atul Khot as a new contributor to the Platypus project. Atul has agreed to begin working on replacing the broken CLI processing in the Platypus core. Thanks and welcome aboard, Atul!
Began Work on URL Command
[url: enables a user to specify a URL for inclusion. Right now it does not support cover text, but will shortly. Immediate challenge is that iText requires the current font be re-specified with the anchor. Must add that and then work on dealing with cover text.
Refactor All Classes that Deal with Indentation
Expanded verification of indent width, refactored code in the three indent classes( [indent:, [paraindent:, [paraindentR ), and wrote tests. All goodness.
Binaries and Source for v. 0.2.0 RC1 Posted
At last! The unpolished download page is at http://platypus.codehaus.org Tomorrow, will prep the appropriate download pages on pz.org and then send out the announcement to the mailing list.
Code Freeze on v. 0.2.0 RC1
At last! Plan to send out announcement at EOD Nov 1 and work on comments and test results until EO November, when v. 0.2.0 will become official. Tomorrow, work on finalizing the docs.
Added Margin Mirroring
Oops, never ported this command. Added now as [mirrormargins] Also added tests for [columnwidth] command, whose addition was completed yesterday
Finished Implementing ColumnWidth command
[columnwidth: is the last command to implement before putting v. 0.2.0. RC 1 out for testing. Writing a few more unit tests, filling out the documentation, and should have the announcement made by EOD, November 1.
Preparing for New Release Logistics
Much of the back end of the Platypus project will be hosted on Codehaus.org with this release. (Thanks, Codehaus!) Getting Codehaus pages set up has been difficult due to lack of any help system. But progress is being made. Due to greater ease of use, will keep mailing lists and download areas on Kenai.com. My only concern in this regard is Kenai’s long term fate after the Oracle acq of...
Fixed Defect When Page Size Changed
PLATYPUS-23 (on Kenai.com) Fixed problem with text being overwritten when page size was changed mid-document. Problem was that when flushing text to the document when the new page size command appears, after the last flush, Platypus was not forcing a new page and recomputation of column sizes. This is now been forced by new code addition to pdf.commands.PageSize.java, which sets the current...