Menu

#172 Get the Windows build running

0.3.6
done
nobody
None
nobody
2024-05-05
2019-12-29
Ulf Lorenz
No

Depends on [#225]

What and Why

Pick up where [#100] left, and finally get the Windows build in a runnable state (see [WindowsBuild] for what has been done).

This would be a perfect place to ask for external knowledge, either Windows or Python-specific. The final goal is not only to get the Windows compilation up and running, but have a cooking recipe that reasonably ensures that the whole thing can be built easily also for the next release(s).

Current State
  • dependencies should be handled with vcpkg, that seems to be the only sane way of doing so on Windows.
    • Problem: Does not always work out of the box
  • Tensor library has an experimental CMake version, but this is not sufficiently finished
    • Lots of loose ends: include directories of dependencies are not found automatically, MSVC does not handle dynamically sized arrays, so you need to patch heavily, ...
  • Altogether, using e.g. Vagrant to easily set up a Linux VM seems way simpler than porting the whole thing to Windows => Downgraded priority
Acceptance criteria
  • Call for help: Building the Windows version; either asking for Python experts or Windows experts.
  • Get the Python module into a state where you can install it on a different computer and Wavepacket works there.
    ** Suggestion: Build a proper Python wheel with library namespacing and all that.
  • Prepare a cooking recipe on the wiki that describes all steps required to build WavePacket for Windows.
    • Crop all unneeeded things
  • Do all other work required for reproducible building (VM setup? others?)
  • Check and update all licenses. In contrast to all other releases, the Windows release would be a binary package with all dependencies, so the licenses should be appropriate.
  • Release 0.3 or 0.3.1 as Windows version
    • Prepare a proper package (add demos, documentation, Readme for the installation)
    • Release the version, announce it

Assembled and tested a Howto for creating a Python module under Windows, https://sourceforge.net/p/wavepacket/cpp/wiki/WindowsBuild/.

The code required very few changes, actually. Most of the work was getting the whole thing to build and run under Windows (I cannot recommend this operating system for hacking).

Related

Tickets: #100
Tickets: #224
Tickets: #225
Wiki: WindowsBuild

Discussion

  • Ulf Lorenz

    Ulf Lorenz - 2019-12-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,6 +1,6 @@
     #####What and Why#####
    
    -Pick up where #100 left, and finally get the Windows build in a runnable state.
    +Pick up where [#100] left, and finally get the Windows build in a runnable state.
    
     This would be a perfect place to ask for external knowledge, either Windows or Python-specific. The final goal is not only to get the Windows compilation up and running, but have a cooking recipe that reasonably ensures that the whole thing can be built easily also for the next release(s).
    
     

    Related

    Tickets: #100

  • Ulf Lorenz

    Ulf Lorenz - 2019-12-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,6 +1,6 @@
     #####What and Why#####
    
    -Pick up where [#100] left, and finally get the Windows build in a runnable state.
    +Pick up where [#100] left, and finally get the Windows build in a runnable state (see [WindowsBuild] for what has been done).
    
     This would be a perfect place to ask for external knowledge, either Windows or Python-specific. The final goal is not only to get the Windows compilation up and running, but have a cooking recipe that reasonably ensures that the whole thing can be built easily also for the next release(s).
    
     

    Related

    Tickets: #100
    Wiki: WindowsBuild

  • Ulf Lorenz

    Ulf Lorenz - 2020-06-02
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -11,6 +11,7 @@
     * Prepare a cooking recipe on the wiki that describes all steps required to build WavePacket for Windows.
         * Crop all unneeeded things
     * Do all other work required for reproducible building (VM setup? others?)
    +* Check licenses. In contrast to all other releases, the Windows release would be a binary package with all dependencies, so the licenses should be appropriate.
     * Release 0.3 or 0.3.1 as Windows version
         * Prepare a proper package (add demos, documentation, Readme for the installation)
         * Release the version, announce it
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2020-06-07
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -11,7 +11,7 @@
     * Prepare a cooking recipe on the wiki that describes all steps required to build WavePacket for Windows.
         * Crop all unneeeded things
     * Do all other work required for reproducible building (VM setup? others?)
    -* Check licenses. In contrast to all other releases, the Windows release would be a binary package with all dependencies, so the licenses should be appropriate.
    +* Check and update all licenses. In contrast to all other releases, the Windows release would be a binary package with all dependencies, so the licenses should be appropriate.
     * Release 0.3 or 0.3.1 as Windows version
         * Prepare a proper package (add demos, documentation, Readme for the installation)
         * Release the version, announce it
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2020-06-23
    • Milestone: 0.3.1 --> 0.4 goal
     
  • Ulf Lorenz

    Ulf Lorenz - 2020-06-23

    postponed; though this would be a cool feature, I would like to try the Python build with CMake first. This might simplify this issue considerably.

     
  • Ulf Lorenz

    Ulf Lorenz - 2020-07-31
    • Milestone: 0.4 goal --> 0.3.2
     
  • Ulf Lorenz

    Ulf Lorenz - 2020-11-29
    • Milestone: 0.3.2 --> 0.4 goal
     
  • Ulf Lorenz

    Ulf Lorenz - 2020-11-29

    Pushed back because the tensor library is just switching to CMake, which would make this issue much simpler.

     
  • Ulf Lorenz

    Ulf Lorenz - 2021-01-30
    • Milestone: 0.4 goal --> 0.3.3
     
  • Ulf Lorenz

    Ulf Lorenz - 2021-06-21
    • status: open --> assigned
    • assigned_to: Ulf Lorenz
     
  • Ulf Lorenz

    Ulf Lorenz - 2021-08-08
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,6 +3,14 @@
     Pick up where [#100] left, and finally get the Windows build in a runnable state (see [WindowsBuild] for what has been done).
    
     This would be a perfect place to ask for external knowledge, either Windows or Python-specific. The final goal is not only to get the Windows compilation up and running, but have a cooking recipe that reasonably ensures that the whole thing can be built easily also for the next release(s).
    +
    +#####Current State#####
    +
    +* dependencies should be handled with vcpkg, that seems to be the only sane way of doing so on Windows.
    +    * Problem: Does not always work out of the box
    +* Tensor library has an experimental CMake version, but this is not sufficiently finished
    +    * Lots of loose ends: include directories of dependencies are not found automatically, MSVC does not handle dynamically sized arrays, so you need to patch heavily, ...
    +* Altogether, using e.g. Vagrant to easily set up a Linux VM seems way simpler than porting the whole thing to Windows => Downgraded priority
    
     #####Acceptance criteria#####
    
    • status: assigned --> open
    • assigned_to: Ulf Lorenz --> nobody
    • Milestone: 0.3.3 --> Backlog
     

    Related

    Tickets: #100
    Wiki: WindowsBuild

  • Ulf Lorenz

    Ulf Lorenz - 2021-12-28
    • Milestone: Backlog --> 0.4 goal
     
  • Ulf Lorenz

    Ulf Lorenz - 2021-12-28
    • Milestone: 0.4 goal --> 0.3.5
     
  • Ulf Lorenz

    Ulf Lorenz - 2022-07-10
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,3 +1,5 @@
    +Depends on [#225]
    +
     #####What and Why#####
    
     Pick up where [#100] left, and finally get the Windows build in a runnable state (see [WindowsBuild] for what has been done).
    
     

    Related

    Tickets: #100
    Tickets: #225
    Wiki: WindowsBuild

  • Ulf Lorenz

    Ulf Lorenz - 2022-12-24
    • Milestone: 0.3.5 --> 0.3.6
     
  • Ulf Lorenz

    Ulf Lorenz - 2023-04-07
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -18,6 +18,7 @@
    
     * Call for help: Building the Windows version; either asking for Python experts or Windows experts.
     * Get the Python module into a state where you can install it on a different computer and Wavepacket works there.
    +** **Suggestion:  Build a proper Python wheel with library namespacing and all that.**
     * Prepare a cooking recipe on the wiki that describes all steps required to build WavePacket for Windows.
         * Crop all unneeeded things
     * Do all other work required for reproducible building (VM setup? others?)
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2024-03-27
    • status: open --> assigned
    • assigned_to: Ulf Lorenz
     
  • Ulf Lorenz

    Ulf Lorenz - 2024-05-05
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -26,3 +26,9 @@
     * Release 0.3 or 0.3.1 as Windows version
         * Prepare a proper package (add demos, documentation, Readme for the installation)
         * Release the version, announce it
    +
    +----
    +
    +Assembled and tested a Howto for creating a Python module under Windows, https://sourceforge.net/p/wavepacket/cpp/wiki/WindowsBuild/.
    +
    +The code required very few changes, actually. Most of the work was getting the whole thing to build and run under Windows (I cannot recommend this operating system for hacking).
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2024-05-05
    • status: assigned --> done
    • assigned_to: Ulf Lorenz --> nobody
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.