switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

switch housing dataset to wine - #17

Closed
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine
Closed

switch housing dataset to wine#17
Ivanidzo4ka wants to merge 3 commits into
dotnet:masterfrom
Ivanidzo4ka:ivanidze/switch_housing_dataset_to_wine

Conversation

@Ivanidzo4ka

Copy link
Copy Markdown
Contributor

This commit replaces housing dataset to wine dataset which we download during build from external source

@Ivanidzo4kaIvanidzo4ka changed the title Ivanidze/switch housing dataset to wineswitch housing dataset to wineMay 4, 2018
@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

Humble attempt to resolve #3 issue. Still not sure what to do with kc_housing since it's behind Kaggle authorization

@eerhardt
eerhardt requested a review from codemzsMay 7, 2018 23:39
Comment threadbuild.proj


<ItemGroup>
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(minor) Can you make the "Include" a better name?

<TestFileInclude="winequality"Url="[https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv](https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)"/>

'Name': 'Data.TextLoader',
'Inputs': {{
'InputFile': '$file'
{8}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I know this already existed before you change, but what do you think about using string interpolation here? I think it would make this so much more readable:

'Inputs':{{'InputFile':'$file'{string.IsNullOrWhiteSpace(loader)?"":string.Format(",'CustomSchema': '{0}'",loader)}

}

[Fact(Skip = "Missing data set. See https://github.com/dotnet/machinelearning/issues/3")]
[Fact()]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(nit) no need for the parens. You can remove ().

Comment threadbuild.proj
<TestFile Include="d" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"/>
</ItemGroup>

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should always do this, not just when RunTests is on. That way I can still run tests from VS Test Explorer even if I just "build.cmd" from command line.

However, we should also have "Inputs and Outputs" hooked up, so that way the target is skipped if the files already exist. check out https://msdn.microsoft.com/en-us/library/ms171483.aspx for how to make incremental builds work. Let me know if you need help.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Any chance you can help me with that?

 <TestFile Include="winequality-white.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-white.csv</Result>
</TestFile>
<TestFile Include="winequality-red.csv" Url="https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv">
<Result>$(MSBuildThisFileDirectory)test\data\external\winequality-red.csv</Result>
</TestFile>
</ItemGroup>
<Target Name="DownloadExternalTestFiles" Inputs="@(TestFile)" Outputs="%(TestFile.Result)">
<Message Importance="High" Text="Downloading external test files... %(TestFile.Result)" />
<DownloadFilesFromUrl Items="@(TestFile)"
DestinationDir="test/data/external"
TreatErrorsAsWarnings="true"/>
</Target>

It keeps download files and i'm not sure how to debug it properly

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@eerhardt Can you help me?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way Inputs and Outputs work is based on file timestamps. You need an actual Input file, so MSBuild can compare its last write time to the output file's last write time.

Here when you specify:

Inputs="@(TestFile)"

It uses the TestFile's ItemSpec (what is put into the Include attribute). I'm assuming we don't have files named "winequality-white.csv", so MSBuild probably decides to always do the task, since it can't find the input file.

Another option is to check if the local file already exists, and if it does, then don't do the download.
Here's that approach we do in a different repo that is doing a similar thing (downloading files from the internet during the build, and caching them so they aren't downloaded for every build invocation):

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/Prepare.targets#L36-L56

The above will download any URL in the @(_DownloadAndExtractItem) Item. And then where those items are defined:

https://github.com/dotnet/cli/blob/69062dda4edd7670cffa5c23876b38eccc130e09/build/BundledRuntimes.props#L61-L66

The item is "Condition"d on whether the file exists or not:

 <_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(CombinedSharedHostAndFrameworkArchive)</DownloadFileName>
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>

So if the CombinedSharedHostAndFrameworkArchive file already exists, then this item isn't included. Thus, when all the files already exist locally, nothing is downloaded.

Comment threadbuild.proj
RestoreProjects;
BuildNative;
$(TraversalBuildDependsOn);
DownloadExternalTestFiles;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will this thing download a file on every build or only if the file is not present already?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'm trying to make it download file only once, but struggle for right now, see Eric comment and my reply.

Comment threadbuild.proj

<Target Name="DownloadExternalTestFiles" Condition="'$(RunTests)'=='true'">
<Message Importance="High" Text="Downloading external test files..." />
<DownloadFilesFromUrl Items="@(TestFile)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a reasonable way to check the file hash? At some point the UCI site will be broken, and/or we will receive (perhaps) a partial file.

As we expand on the use of this, there'll be additional ways for it to fail.

@Ivanidzo4ka

Copy link
Copy Markdown
ContributorAuthor

I guess I delete my repository and recreate it again, and now PR lost track of origin source, so I need to create new PR #170

@ghostghost locked as resolved and limited conversation to collaborators Mar 31, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Ivanidzo4ka@justinormont@eerhardt@glebuk