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

Alphapeptdeep Integration #3123

Open
wants to merge 85 commits into
base: master
Choose a base branch
from

Conversation

xgwang-uw
Copy link
Contributor

  • Rename existing PythonInstaller to PythonInstallerLegacyDlg
  • Add new PythonInstaller implementation to support Python virtual environment
  • Add functional tests for new PythonInstaller implementation

@xgwang-uw xgwang-uw requested a review from nickshulman August 16, 2024 09:00
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="OneOf" version="3.0.271" targetFramework="net472" />
Copy link
Contributor

Choose a reason for hiding this comment

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

This works on my development machine, but the build on TeamCity seems to be failing because it does not see this dll.

So far we have been adding all of the dll's that we need to:
pwiz_tools/Shared/lib

Copy link
Member

Choose a reason for hiding this comment

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

For modern Nuget we use PackageReference, like this for Ardia in the Skyline.csproj file:

  <ItemGroup>
    <PackageReference Include="Microsoft.Web.WebView2">
      <Version>1.0.2420.47</Version>
    </PackageReference>
  </ItemGroup>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good. Thanks for the suggestion here. I've updated OneOf to use PackageReference. It works locally. Let's see if the teamcity test can pass now

Copy link
Contributor

Choose a reason for hiding this comment

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

Everything builds fine on TeamCity, but now it looks like "OneOf.dll" is not getting copied to where it needs to go.
The test "CheckForMissingResources" is failing to load "Skyline-daily.exe":

System.IO.FileNotFoundException: Could not load file or assembly 'OneOf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'OneOf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

Does anyone know how to fix something like this?

@chambm
Copy link
Member

chambm commented Aug 20, 2024

Something went wrong with the merge here. It shouldn't show changes from other PRs. Maybe try fetching latest master and rebasing your branch on it. Do you need help doing that?.

@nickshulman
Copy link
Contributor

nickshulman commented Aug 20, 2024

Something went wrong with the merge here.

My guess is that pushing "Update branch" will fix everything.
This branch has changes from master but does not know that it is up to date with master.
If we push the "Update branch" button it will notice all the files that it wants to change are identical to what is already there and everything will be good.

@xgwang-uw xgwang-uw force-pushed the Skyline/work/20240816_pythoninstaller_with_virtual_env_support branch from 868fde7 to 416c9d2 Compare August 20, 2024 19:43
@xgwang-uw
Copy link
Contributor Author

Something went wrong with the merge here. It shouldn't show changes from other PRs. Maybe try fetching latest master and rebasing your branch on it. Do you need help doing that?.

Yeah. Thanks for asking. I did a rebase which treated the updated changes and anything in between as new commits. I rolled back those changes and added the updates as a new commit. That fixed this branch. I will do a merge from master later on.

@xgwang-uw xgwang-uw force-pushed the Skyline/work/20240816_pythoninstaller_with_virtual_env_support branch 3 times, most recently from 3db9cca to b007485 Compare August 21, 2024 22:40
@chambm
Copy link
Member

chambm commented Aug 22, 2024

On TeamCity the TestData test runs from an installed directory (installed with the WIX-based installer). Any non-vendor DLLs have to be added into Product-template.wxs manually. We didn't hit this on the Ardia PR because the Ardia tests are in TestConnected, which doesn't run under the admin-installed instance. Nick, we have both hit this snag many times over the years and it's funny how easily we forget it. :) I think I once proposed grepping for DLLs in the csproj files in the past but never got around to implementing it.

@xgwang-uw xgwang-uw force-pushed the Skyline/work/20240816_pythoninstaller_with_virtual_env_support branch from a4971e8 to 7812cb5 Compare August 26, 2024 19:58
- Install python modules of specific versions used by carafe
- Make name of variable for storing modifications plural
…ng unsupported modifications by AlphapeptDeep or Carafe
…rk/20240816_pythoninstaller_with_virtual_env_support
…f Windows LongPathsEnabled registry key using SkylineProcessRunner with elevated privilege. Gives the user notice about LongPathsEnabled and attempts set up without LongPathsEnabled if user clicks 'Cancel'

Verified that LongPathsEnabled is now set as expected when user clicks 'OK.'  Python installation tasks list prerequisite changes to prevent pip packages re-installation if the only task is setting 'LongPathsEnabled.' Preparation for a functional PythonInstallerTest, still to be implemented.
…rk/20240816_pythoninstaller_with_virtual_env_support
…taller to BuildLibraryDlg to address failing test due to: "(Skyline model code must not depend on UI code)"
Copy link
Contributor

@brendanx67 brendanx67 left a comment

Choose a reason for hiding this comment

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

Let’s review this change carefully. The code certainly looks poorly designed for inclusion in the Model space. You can’t bring up a form inside Model. On the other hand a function to install a virtual environment in Python seems better placed in a PythonInstaller class than the BuildLibraryDlg… or in necessary, PythonInstalllerUI out in the UI space.

@dshteyn
Copy link

dshteyn commented Dec 28, 2024

I moved the InstallPythonVirtualEnvironment function to ToolInstallUI, which is more appropriate than either Model space or BuildLibraryDlg.

dshteyn and others added 10 commits December 28, 2024 13:27
+ disable Carafe BuildLibraryDlg user-facing option for now
+ add test to exercising BuildLibraryDlg with AlphapeptDeep
+ add test for future exercising of BuildLibraryDlg with Carafe
…rk/20240816_pythoninstaller_with_virtual_env_support
      "Assert.Fail failed. 1 code inspection failures found:

      Found prohibited use of
      "using.*(pwiz\.Skyline\.(Alerts|Controls|.*UI)|System\.Windows\.Forms|pwiz\.Common\.GUI)"
      (Skyline model code must not depend on UI code) at
      Z:\pwiz\pwiz_tools\Skyline\Model\Tools\PythonInstaller.cs(14)
      using pwiz.Skyline.Alerts;"
…indows LongPathsEnabled setting, which requires elevation and unlikely to work in an automated test where this is not available.
…ryDlg functionality. Disable failing TestFunctional tests until python installation failures on TC test nodes can be resolved.
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.

5 participants