Skip to content

Missing deps modules #5

Open
Open
@ambs

Description

@ambs

After some chat with @dagolden, he suggested to post here ideas on what is and what should be Smoker behavior in some circumstances.

In my humble Win32 smoking machine I am having a big problem with modules that are tested everyday (every time the smoker script reindexes cpan and restarts).

I am not sure in which situations this happens, but it seems it happens when:

  • There is a missing dependency. A module XYZ says it depends on ABC, that is not on CPAN. Then, next day, XYZ is tested again, checking if ABC is already available. Although this is a nice behavior (the CPAN mirror might had trouble copying a file, and in the next day it will be available), but it is also a problem for some modules released in the last century and whose dependencies are not yet in CPAN (or aren't there anymore)
  • The second situation is when a dependency fails to build. In this case I am not sure if I understood what is done, but it seems that if a module A depends on B, that depends on C, that depends on a failing module, D, A will also be tested everyday (because the smoker script failed to install dependencies, so it is not A's fault). Problem, next day, A will be built again, installing B, and C.. and finding D is missing. This is quite fast if there are few dependencies, but in some situations modules have a hundred dependencies, and the last one will fail. Why this is a good procedure? because D's author might release a fixed release, and A will start working again.

I think these two situations need to be handled in a different way. I am not sure if they are feasible, if they are desirable, or even if they are possible (do not know the details behind the smoker script).

  • For the first situation, and if there is a way to compute the age of a distribution, set a delay before testing the distribution again. Can be something simple, or complicate, last, compute the number of months since the last release, and use that number as the number of days to wait until testing the module again. So, if the module was released less than a month, it will be tested everyday. If it was released in 2000, it will be tested every 156 day. Cool, huh? Problem... is it possible to do this kind of management in the queue.
  • For the second situation, and this is something @karenetheridge already suggested. Author of module A would love to know that he is depending his work in a module that is failing to install. So, we probably should report a NA result. This would help the author. To help the smoker, it would be interesting to save which modules (kleene closure) a module depends on, so we could check right ahead if we have some fail reports on any of them. If so, report the NA and continue.

Is any of this possible? Does this make sense? If so, can I help somehow?

Cheers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions