Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #2238 - Renew source files after preGenerateCommands #2239

Merged
merged 1 commit into from
Apr 19, 2022

Conversation

atilaneves
Copy link
Contributor

No description provided.

import std.path : absolutePath;
import std.file : mkdirRecurse, rmdirRecurse, write;

mkdirRecurse("dubtest/preGen/source");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the dub unittests write to the filesystem. It would probably be better to use the tests folder test system with shell scripts.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that a good enough reason? I think it's a lot better to unit test even if it requires writing to the file system, especially as the only way I can get this to manifest in real life is with two dub packages where one depends on the other.

Copy link
Member

@WebFreak001 WebFreak001 Apr 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my main reason would be that all the existing similar tests use the test folder (shell scripts or D scripts, optionally with their own folders where they can do whatever they want) and I don't think dub has such tests inside the unittests.

Additionally the test runner in the tests folder is more easily usable with isolating tests and debugging issues.

Example test script:
https://github.com/dlang/dub/blob/059f7a2a16cf7a50a5c68dc295c796482116ff87/test/environment-variables.script.d

and test folder:
https://github.com/dlang/dub/tree/059f7a2a16cf7a50a5c68dc295c796482116ff87/test/environment-variables

while this unittest is nice in testing the issue in isolation, (as unittests should do) the test folder in general is quite useful as it runs the whole dub executable with the full generator and stuff, so issues that are related to this, but not exactly this issue, may be found more easily.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get all that - I'm arguing that the way in this PR is better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please merge? I don't think "We've always done it this way" is a valid argument.

@nordlow
Copy link
Contributor

nordlow commented Apr 19, 2022

I presume using inotify on Linux and corresponding mechanism on Windows could be used here to only renew sources files that were actually changed or created.

@atilaneves
Copy link
Contributor Author

I presume using inotify on Linux and corresponding mechanism on Windows could be used here to only renew sources files that were actually changed or created.

That's a lot more complicated for, I think, little benefit. This works.

@WebFreak001 WebFreak001 merged commit 73f6b14 into dlang:master Apr 19, 2022
@nordlow
Copy link
Contributor

nordlow commented Apr 19, 2022

Is this about making dub aware of modified and/or added source files?

@WebFreak001
Copy link
Member

WebFreak001 commented Apr 19, 2022

yes, if modified through preGenerateCommands, to fix #2238
otherwise no

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants