#2573 F4 cycle dependency error

jhughes Wed 19 Oct 2016

Not really sure what the cause of this is because it's really random and the fix is even more odd.

I have two pods, the first pod has no dependencies to anything other than built in fantom pods and a few other pods i've created for utility methods which also have no dependencies to anything but standard fantom pods. The second has a dependency to the first pod as well as one of those utility pods. At random times in the F4 IDE, the error "A cycle was detected in the build path of project.." will show up for all projects in IDE. If I completely remove all the projects and re-import them, then the errors ago away but will come back inconsistently when build path properties get changed. Even the stand alone utility pods will encounter this issue if they happen to be in the IDE project explorer at the time when the issue presents itself even though they have no references to anything but things like sys or util so how could there be a cycle dependency?

Not really sure if this is a failure of the F4 IDE to correctly work with multiple projects or something else so if anybody has encountered this and knows how to make it stop coming back, that would be really helpful.

SlimerDude Wed 19 Oct 2016

I have seen this, although I've not encountered it in a long time. Hence I don't really know what the cause or solution is.

Can you check the Env settings for each project; Project -> Properties -> Fantom -> Env

Are you using None or Path::Env? And is Publish pod on successful build checked for any project? This would be really useful to know.

Maybe try ensuring all the publish checkboxes are unchecked - there's a chance F4 is overwriting pods it's then trying to read.

SlimerDude Thu 20 Oct 2016

Oh, and to add - I don't recall having to re-import all my projects, I believe I just closed a couple until F4 corrected itself, then re-opened them.

jhughes Fri 21 Oct 2016

Was waiting for the issue to come back up again to check this all out.

Project->Properties->Fantom->Env for both projects currently in the IDE have None checked and Publish pod on successful build unchecked.

When I remove one project (the one depended on), the project that depends on it removes the cycle dependency error and replaces it with:

Project WebServer is missing required script project: WebAPI WebServer

Clean project doesn't solve but relaunching F4 does.

Adding the project back in also doesn't cause an immediate issue. I don't know what F4 is doing with these projects but it doesn't like something...sometimes at least.

Jay Herron Tue 8 Nov 2016

I'm seeing the same issue. I have an identical setup to jhughes, and I have been seeing the same issues.

Closing related projects, then restarting F4 and re-opening the other projects removed the errors for me. But I think I have done that previously and the errors returned. I will update if they return again.

SlimerDude Tue 8 Nov 2016

Sounds like there's a good chance the cycle dependency may return.

I can try and help, but I'd need a couple of empty or small F4 projects and steps that consistently reproduce the errors.

I did a lot of work on the F4 1.1 release and can say that the actual Fantom F4 code is pretty easy to follow. The hard part is knowing / understanding eclipse's Dynamic Language Toolkit (DLTK) and how it plugs in to the eclipse platform. I suspect this is where the problem lies, but there's next to no documentation for DLTK and the code is pretty abstract.

I myself use an FPM Env plugin for F4 and find it fairly robust (i.e. no cyclic dependency errors). I could publish it if interested.

F4 FPM Plugin

Jay Herron Wed 9 Nov 2016

Yup, the issue had returned after an hour or two.

Thanks for the FPM fix. It looks like you provided some more instructions here: http://fantom.org/forum/topic/2575. I installed it this morning and have seen no cycle dependency errors since.

Thanks again!

LightDye Sun 23 Jul 2017

I encountered this issue today. Using the Fantom Pod Manager resolved the issue. Great work. Thank you SlimerDude!

Login or Signup to reply.