1

Topic: What version should I use

I'm about to install the Warehouse code on our freshly minted Ubuntu-based warehouse server, but before I do so was wondering whether it best to use the 0.8.1 branch, or to stick with 0.7.1.

Similarly, should I use Instant Indicia 0.8.1 or 0.7.1? If so, where in SVN are the newer Instant Indicias stored?

(I'm hanging out in the Jabbr chat room - http://jabbr.net/#/rooms/indicia - if anyone wants to jump in there)

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

2

Re: What version should I use

Hi Charles,

I would only recommend the 0.8.1 warehouse branch (svn/core/branches/version 0.8.1) now. Replacing the 0.7.1 download is overdue.

There is a 0.8.1 branch of the iForm module (svn/drupal/modules/iform/branches/version 0.8.1) but the latest version of the indicia_features is in the trunk (svn/drupal/modules/indicia_features/trunk). These would be bundled in to an Instant Indicia download. An Instant Indicia download would also include Drupal and a bunch of Drupal modules which are not copied in to our repository so there is no 0.8.1 version of Instant Indicia you can help yourself to currently.

Jim Bacon

3

Re: What version should I use

Jim,
I took the iForm module from the trunk rather than the branch. Is this going to cause problems for me? Should I replace it with the branch version?

Fiona

Fiona McCrory
CEDaR Website Officer
www.nmni.com/cedar

4

Re: What version should I use

Thanks for this Jim. Fiona and I were just chatting about this in the chatroom. So, do new features get committed to Trunk then cherry-picked across to the 0.8.1 Branch when they've been tested considered stable? In other words, Trunk is always 'bleeding-edge', the Branches are 'stable beta' and Tags are 'releases'.

So as a safe middle-ground, it's best to use a branch, no? Or is it a safe bet to use Trunk?

Another couple of questions that just occurred to me:

1. Is it OK to use Instant Indicia 0.7.1 against a 0.8.1 warehouse?
2. If I install Instant Indicia 0.7.1, what steps would I need to carry out to upgrade to 0.8.1?

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

5

Re: What version should I use

Hi

Initially what was happening was that development occurred in the trunk. Then there would be a pause in development, a round of testing and something considered stable would be tagged, zipped up and made available as a download. Usually the trigger for pushing out a release would be the need for some new feature in the warehouse. Usually, to support that new feature, there would be a corresponding upgrade needed in the client software but backwards compatibility with previous client software was always maintained.

Now, needless to say, we might tag a release like 0.6.1 and then discover it still contained bugs. Meanwhile development would have started up in the trunk again. We'd have to fix the bugs and patch our servers and the resultant code would go in to a branch, 0.6.2 in this case. Thus the latest branch would contain the most stable available version of the code.

Now recently I guess development was going on at break-neck speed yet there must have been some need to push out a new feature so what happened was that a branch 0.8.0 was created and tested while development continued in the trunk. However, it was never tagged or bundled for download. When subsequently bugs were found in it they were fixed and branch 0.8.1 came in to being. It is now the most stable available version of the code.

It is a fact that one or two new features have been copied from the trunk in to 0.8.1 so that they could be moved on to our servers. John's pragmatism slightly at odds with my puritanism there.

In summary, tags are releases; branches are bug-fixed releases and trunk is your bleeding edge. This is a slightly abnormal way of doing things because the branches are not frozen so branch 0.8.1 today may be different from what it was yesterday so, when you say you have version 0.8.1 installed that doesn't actually give us unambiguous knowledge of the code you have installed.

Because we strive for backwards compatability using a client (e.g. Instant Indicia 0.7.1) that is an earlier version than the warehouse should be safe.

However, in Fiona's case, using a client that is a more recent version than the warehouse could possibly cause problems as the client may try to use features that do not exist in the older warehouse. You may not encounter a problem but my advice would be to use the 0.8.1 branch of the iForm module.

Regarding an upgrade to Instant Indcia, Charles, such a thing has not been carried out yet. For sure there would be actions involved similar to upgrading Drupal modules but I'm not sure what else. I'm not conversant with how Instant Indicia works. Myself, I just use the iForm module and, recently, the EasyLogin module.

Jim Bacon.

6

Re: What version should I use

Thanks Jim, that's very helpful.

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

7

Re: What version should I use

Hi Charles, Jim
I've added a Wiki page at http://code.google.com/p/indicia/wiki/D … ndiciaCode which covers my take on this - please feel free to add any notes.

In general it should be safe to use an older version of the client-side code with a newer warehouse version, but not necessarily the other way round. At this point in time I'm pretty confident that the trunk client code does work fine against the 0.8.1 branch but as Jim says we might introduce new warehouse features which the client code depends on.

John van Breda
Biodiverse IT

8

Re: What version should I use

Thanks, John, that is a helpful description of the principles.

Reading it makes me realise that my use of the word stable has been imprecise. Version 0.7.1 is stable in the sense that the code is tagged and will not change whereas the branch 0.8.1 is not stable in the sense that it may receive bug fixes and change.

On the other hand, if anyone is experiencing a problem with version 0.7.1 my first advice is to upgrade to 0.8.1 because of the bug fixes it contains. Where I described 0.8.1 as the most stable I should perhaps have said most reliable. I would not use  0.7.1 myself nor want to investigate problems with it.

Jim Bacon