This question is really aimed at Ivan - Hello!
Projects in F4 ignore the version set in build.fan and default to 1.0.
While fine in single projects, with multiple projects with dependencies on each other, it becomes a pain because I can't have them open at the same time. Example:
afEfanExtra 0.6 --depends-on--> afEfan 1.3
As in the the build.fan of afEfanExtra has
depends = [ ... "afEfan 1.3" ... ]
But when I open afEfan I get the compilation error:
Cannot resolve depend: 'afEfan 1.0' != 'afEfan 1.3.2+'
While it's easy enough to change the depends in this case, I often have much larger dependency chain where it's not so convenient.
I was just wondering, is this by design or is it a bug?
That's a known issue, which has been fixed – https://github.com/xored/f4/issues/17, but we didn't make any releases since then.
Could you give a try to nightly build here – http://build.xored.com/browse/F4-MSTR-4/artifact/PROD/products?
Cool, thanks Ivan!
Yeah, I'll try the nightly build tonight - This version thing has become a real pain in the ars*!
I'm not having much luck with it. :(
New pods are still compiled with a version of 1.0 in meta.props and the IDE still complains of:
Cannot resolve depend: afEfan 1.0 != afEfan 1.3.2+
Is there something else I'm supposed to do?
That's strange, could you show your build.fan? Here's what I see:
This is a typical build.fan of mine, but
still returns 1.0.
I've cut down the build.fan to a bare minimum (podname, version, depends & srcdir) and I still get 1.0 - are you sure the nightly build contains the changes?
I'll download the nightly F4 again (Win 64bit version) and re-try...
No need to redownload – the issue is that F4 does not understand Version([0,0,9]) constructor. Could you try replacing it to Version("0.0.9")?
Since build.fan is a Fantom source, the only way to correctly extract all values from it is to compile and evaluate it, but that takes time, so instead we are using parser to extract necessary values from it. So for Version we are searching for a constructor call, which accepts a single Str value – https://github.com/xored/f4/blob/master/com.xored.f4.core/fan/manifest/Manifest.fan#L126
That's sweet, using the Str ctor does the trick.
Nice one! Thanks,
I ran into a similar situation with the most recent F4 on my linux machine. I found that you must use the shorthand construction syntax when declaring the version (which is preferred anyway, but not required). That is,
version = Version([1,4,6])
version = Version("1.4.6")
But these did not:
version = Version.make([1,4,6])
version = Version.make("1.4.6")
Both appear to work on my Windows machine...
Just thought I'd note this behavior in case anyone else needs it.
Thanks Jay, I've just made a note of it - Project versions not recognised. I'll take a look in the next round of F4 updates.
Login or Signup to reply.