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

🔬Multi-OS execution and publishing #392

Open
4 of 6 tasks
CalvinWilkinson opened this issue Oct 17, 2022 · 0 comments
Open
4 of 6 tasks

🔬Multi-OS execution and publishing #392

CalvinWilkinson opened this issue Oct 17, 2022 · 0 comments
Assignees
Labels
🔬research Research collection / investigation

Comments

@CalvinWilkinson
Copy link
Member

CalvinWilkinson commented Oct 17, 2022

Complete The Item Below

  • I have updated the title without removing the 🔬 emoji.

What To Research

The application is getting closer and closer to the reality of needing to be executed and tested in other operating systems other then Windows. Due to this, there are complexities that need to be dealt with such as builds, executing unit tests, and distributing the correct binaries with each OS.

All of these things need to be figured out.

This issue will do the proper research to handle these areas.


Scenario 1

Research into how Visual Studio Community and JetBrains Rider can be set up to be able to publish, build, execute unit tests, and run the application remotely into WSL for running the application.

  • Visual Studio Community
    • This can indeed do remote development, but I have never done this before. Research this to see what is available and also how to do it.
  • JetBrains Rider
    • This has a Remove Development capability that could be utilized to do this. It is currently in beta but requires that Linux is setup for SSH for it to work. There are websites and Rider documentation about the subject.

Scenario 2

Another way that this could possibly be done is by using PowerShell. This is what can be used if the IDEs cannot accomplish what is needed. PowerShell is not only cross-platform but can provide much more control over the process.
If none of the IDEs can provide what is needed, then this is the alternative.

Things To Consider:

  • The scripts should have all of the pathing done relative to the path of the script itself.
  • A build will need to be executed
  • Restoring packages will have to be performed
  • Running the publish will have to be done for each configuration type
  • Input parameters to the script will need to be constructed for choosing which type of configuration/publish to perform.
  • When dealing with WSL, building and copying the build and or project to the WSL side is slow and not ideal. Instead, simply use GIT to get the latest code before building.
    • This means that work will need to be done to make sure that no staged or unstaged items are in progress
    • Authentication to pull down the repo needs to be considered. This means making sure that storing those credentials securely is taken into account.
  • The following configurations need to be set up and work
    • Debug
    • Debug-Console
    • Release
    • Release-Console
  • The runtimes directory will need to be manually added to the publish result.
    • The directory does not automatically get published. The solution will also have to be built for the runtimes directory to be created before it is copied to the publish results

Purpose:
This publishing will be required when needing to easily publish different configurations for windows and Linux as things progress into the future. For example, the Linux version of the publish can be performed on windows inside of WSL for testing purposes as well. Remote development can be done with JetBrains Rider and probably Visual Studio, but having those both setup and working for all environments is not only

Research Results

No response

Acceptance Criteria

This issue is finished when:

  • Research complete and issues created (if needed).
  • If any issues were created, they have been added to the Related Work section below.

ToDo Items

  • Priority label added to this issue. Refer to the Priority Type Labels section below.
  • Issue linked to the correct project.

Issue Dependencies

No response

Related Work

No response

Additional Information:

Priority Type Labels

Priority Type Label
Low Priority low priority
Medium Priority medium priority
High Priority high priority

Code of Conduct

  • I agree to follow this project's Code of Conduct.
@CalvinWilkinson CalvinWilkinson added high-priority High Priority 🔬research Research collection / investigation labels Oct 17, 2022
@CalvinWilkinson CalvinWilkinson self-assigned this Oct 17, 2022
@CalvinWilkinson CalvinWilkinson removed the high-priority High Priority label May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔬research Research collection / investigation
Projects
Status: ⚪Not Set
Development

No branches or pull requests

1 participant