Regarding the location of the executable: Propably using
which `bzr`
should work, at least on UNIX-like systems. Since we have this "isMacOS", "isLinux" etc. variables, we can propably incorporate them in here. For Windows, we need a different solution of course.
The problem with the requirement regarding bazaar is the same as the problem with the requirement regarding hdiutil - both are dependencies, we don't want to have in the future, although they seem to be a working, temporary solution.
Regarding the problem with the "source only, no bazaar" distribution. I think, we should split our Ant tasks apart, so that the bazaar-dependent tasks are run BEFORE the tasks which need the version number. So for example we currently call the tasks in the following order (I didn't double-check this):
init -> compile -> dist -> release
init -> source
At the moment, the bzr-dependent stuff is handled in "dist" or "release", which makes the source distribution difficult. The goal is to have a "source" which is compileable and "release"able without bzr. To accomplish this, I guess we need to split apart "init" into two tasks, one with the bzr-dependency and one without. Then, we could have the following order:
Now, when I downloada source only distribution, it is already in the "source" state. So when I call "dist" or "release", it starts off with init2, not with bzrinit. I guess there is some more state-modeling work necessary to find a really good solution for this.
Regarding the location of the executable: Propably using
which `bzr`
should work, at least on UNIX-like systems. Since we have this "isMacOS", "isLinux" etc. variables, we can propably incorporate them in here. For Windows, we need a different solution of course.
The problem with the requirement regarding bazaar is the same as the problem with the requirement regarding hdiutil - both are dependencies, we don't want to have in the future, although they seem to be a working, temporary solution.
Regarding the problem with the "source only, no bazaar" distribution. I think, we should split our Ant tasks apart, so that the bazaar-dependent tasks are run BEFORE the tasks which need the version number. So for example we currently call the tasks in the following order (I didn't double-check this):
init -> compile -> dist -> release
init -> source
At the moment, the bzr-dependent stuff is handled in "dist" or "release", which makes the source distribution difficult. The goal is to have a "source" which is compileable and "release"able without bzr. To accomplish this, I guess we need to split apart "init" into two tasks, one with the bzr-dependency and one without. Then, we could have the following order:
bzrinit -> init1 -> source -> init2 -> dist -> release
Now, when I downloada source only distribution, it is already in the "source" state. So when I call "dist" or "release", it starts off with init2, not with bzrinit. I guess there is some more state-modeling work necessary to find a really good solution for this.