Blog

As we are planning to move from Bugzilla to JIRA, I investigated how to achieve that the static links are not broken.

All our Open Source products have static references to Bugzilla issues. For instance the release notes of smartics-jboss-modules-maven-plugin or smartics-properties.

Using the Apache Module mod_rewrite it is possible to rewrite requested URLs on the fly. This post addresses especially Apache 2.2.22 but should be quite similar with Apache 2.4.X though.

The task is now to rewrite e.g
https://www.smartics.eu/bugzilla/show_bug.cgi?id=931
to
https://www.smartics.eu/jira/browse/SJBMMP-19.

This could be done in writing a RewriteMap containing the Bugzilla issue ID as a key and the JIRA issue ID as the value. The next step after importing the Bugzilla issues to JIRA is generating such a map.
 
Use the External System Import feature to import the Bugzilla issues to JIRA: secure/admin/ExternalImport1.jspa

Each imported issue has (as you can see in the image) a field External Issue Id. This is in our case the old Bugzilla issue ID.

With some simple steps we export the imported issues to the map in a format we need:

  • Go to the newly imported project in JIRA
  • Change the displayed columns
  • Change the order of the columns using drag and drop
  • Export to Excel
  • Remove all unnecessary elements in the exported excel sheet and convert the links to plaintext
  • Export Excel sheet to text file

For our smartics-jboss-modules-maven-plugin the exported text file looks like this:

##
## bugzilla-jira-map.txt - Bugzilla to JIRA map (smartics-jboss-modules-maven-plugin)
##
806 SJBMMP-3
808 SJBMMP-4
809 SJBMMP-5
810 SJBMMP-6
811 SJBMMP-7
834 SJBMMP-8
837 SJBMMP-9
842 SJBMMP-10
843 SJBMMP-11
844 SJBMMP-12
845 SJBMMP-13
848 SJBMMP-14
851 SJBMMP-15
873 SJBMMP-16
874 SJBMMP-17
875 SJBMMP-18
931 SJBMMP-19

Having this we are nearly finished. The last step is to copy the generated file to Apache and to configure Apache to do the redirect:

...
# In the case you have to debug the rules
#LogLevel alert
#LogLevel info rewrite:trace6
#LogLevel alert rewrite:trace3
#OLD APACHE: RewriteLog "/tmp/rewrite.log"
#OLD APACHE: RewriteLogLevel 5
#The mappingfile (must not be in a Directory entry)
RewriteMap bugzillajiramap "txt:/etc/apache2/bugzilla-jira-map.txt"
...
#Our Bugzilla Directory entry
<Directory /home/smartics/public_html/bugzilla/>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI +FollowSymLinks
   DirectoryIndex index.cgi
   AllowOverride Limit
   AddType application/vnd.mozilla.xul+xml .xul
   AddType application/rdf+xml .rdf
   RewriteEngine on
# Grep the ID from the Query_String and store in Variable 1.
   RewriteCond %{QUERY_STRING} "id=(.*)$"
# Check if ID is in the specified text file. Only when found continue with RewriteRule.
   RewriteCond ${bugzillajiramap:%1|NOTFOUND} !NOTFOUND [NC]
   RewriteRule "^show_bug.cgi" "https://www.smartics.eu/jira/browse/${bugzillajiramap:%1|NOTFOUND}"
</Directory>

That's it! Restart Apache using apache2ctl restart and you successfully moved your Bugzilla project to JIRA.

Resources that helped me to solve this:


We decided to move our software documentation from the XDoc format to projectdoc on Confluence. This allows us to update the information independent of the release cycles of the products. We also take advantage of templates and macros that make it much easier to create the documentation collaboratively.

On Using projectdoc to document Maven Plugins we present some tips on how to use projectdoc to document plugins for Maven.

Two of our plugins already moved:

We moved our smartics-jboss-modules-maven-plugin, a plugin for Maven from our public SVN to the smartics repository at GitHub!

The new location is https://github.com/smartics/smartics-jboss-modules-maven-plugin.

We hope that this makes it easier for our users to fork and adjust the plugin according to their requirements and ideas!


Once we released the next version, we will push them to the Maven Central repository.

Create your software or system architecture documentation (SWAD) based on the arc42 Template with blueprints on Confluence 5!

The first public version of projectdoc Add-on for arc42 is now available on the Atlassian Marketplace for free!

 

 

 

Please note that this add-on requires version 1.6.0 of the commercial smartics projectdoc add-on for Confluence.

  1. Create your modular documentation with projectdoc to enhance you collaboration experience!
  2. Use the arc42 SWAD structure to assemble your documentation modules into a comprehensive and easy accessible volume!
  3. Adjust your Confluence blueprints according to your documentation requirements!

Checkout the example project HTML Sanity Checker Architecture Documentation!

For more information on arc42 Template, please visit the arc42 website.

Before you buy: Check out our promotion code!

arc42 10th Anniversary!

arc42 celebrates its 10th anniversary!

We congratulate!

The arc42 Template is a very productive tool to document software and system architectures. The template defines an intuitive structure that is easy to understand and allows stakeholders to to locate information quickly.

 

To say thank you for the free arc42 resources for software architects we start a promotion for projectdoc!

 


Use the promotion code

arc42

to get 50% off for licenses of 11 seats and up!



The promotion starts with Gernot Starke‘s talk arc42 reality check at JAX on April 22nd, 2015 and lasts until the end of June.

Today version 1.6.0 of the smartics projectdoc add-on for Confluence has been released!

 

 

 

Please note that you have to upgrade the following doctype add-ons to work with this version of projectdoc:

Subject Homepage

The new Subject Homepage feature allows to define homepages for documents tagged with a given subject. This ways users can move a new page automatically by selecting a specific subject.

For more information please refer to the documentation of the space property projectdoc-subject-(subject-name)-home .

Default-only Space Properties

This feature allows to specify a user space property that only gets active if it is not overridden by a space property. This allows to override space properties with user space properties.

Fixes of several more Issues

For details on changes in this release, please refer to the release notes.

Note that the internal API has changed. Therefore older version of projectdoc doctype add-ons are not supported to work with projectdoc 1.6.0.

Developer Diaries

A developer diary is a very useful tool to add information for and about your work effortless. Since the entries of your diary are records, there is no need to keep them up-to-date. You diary is an invaluable tool to remember bits of information that will otherwise get washed away by the tremendous amount of information you are confronted with every day. It also helps you stay focussed on your tasks and to incorporate the continuous improvement process into your daily work. Last but not least, it is also a communication tool with your team mates, since they can also profit from your discoveries and decisions.

If you want more information: We published a short article on developer diaries.

Developer Diaries for Confluence

The Developer Diaries Add-on for Confluence is available on the Atlassian Marketplace.

Please note that this add-on require version 1.5.0 of the commercial smartics projectdoc add-on for Confluence and the projectdoc Core Doctypes.

The first public version of our projectdoc Developer Diary is now available on the Atlassian Marketplace for free!

Please note that these blueprints require version 1.5.0 of the commercial smartics projectdoc add-on for Confluence.

The add-on makes it easy for developers to create their developer diaries or codelogs. Organize your work by the employment of a diary! Take you personal planning and professional work to the next level!

Use a diary to add notes of interesting information. Store them as events for a day in your working life. A diary needs not to be updated. New information is easily added without any hassle to figure out where to place it. This information can be easily referred to later via Confluence search. It may also help your team mates to take advantage of your discoveries.