-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Moving Rover (dotnet-bootstrapping tool) from private repository into dotnet/core #326
Conversation
@@ -0,0 +1,3 @@ | |||
*.py -crlf |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
up the build, make changes, etc. This is 'development mode' or DevMode for short. In DevMode, NO git commands are executed. This is to prevent | ||
the script from stomping out any changes you have made in the working directory. | ||
|
||
DevMode is triggered if the working directory is pre-existing. Consequently, when things fail in the script, we do not 'clean up' the working directory. We write a repro script |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
## Work Flow | ||
Place Rover in a directory. Run it. | ||
|
||
In the event of a failure, we prevent clean-up. If the failure is not a rover script error, there is likely a rover_failure-repro.sh in the directory where the command failed (you are notified on |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
PatchTarget_SDK = '' | ||
PatchTarget_Host = '' | ||
|
||
DotNetCommitHash = 'rover-boot-strap' |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@@ -0,0 +1,39 @@ | |||
#!/usr/bin/env python |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@@ -0,0 +1,8 @@ | |||
FROM debian:8.0 |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@@ -0,0 +1,8 @@ | |||
FROM debian:8.0 | |||
MAINTAINER Bryan P. Arant <bryanar@microsoft.com> | |||
RUN apt-get -qqy update |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
It may make sense to move .gitignore and .gitattributes to the top level of the repository (and maybe just crib from the version we have in corefx)? |
|
||
# ROVER BASE # | ||
class RoverMods: | ||
HEADER = '\033[95m' |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
||
# replace native files in 'shared' folder. | ||
# from coreclr | ||
RoverShellCall('cp *so %s'%(RoverSettings.PatchTarget_Shared), cwd=coreclr_bin_directory) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
core_setup_working_git_directory = path.join(RoverSettings._srcDirectory, 'core-setup') | ||
libuv_working_git_directory = path.join(RoverSettings._srcDirectory, 'libuv') | ||
|
||
default_coreclr_bin_directory = '%s/bin/Product/Linux.x64.Release/'%(coreclr_working_git_directory) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
RoverSettings.LibUVBinDirectory = default_libuv_bin_directory | ||
|
||
platform_info = platform.uname() | ||
this_distro_name = str(platform.linux_distribution()[0]).lower() |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
d5d8835
to
4fb1423
Compare
ba7474b
to
f665101
Compare
test ci please |
CI test is passing, going to hold off on one more thing - I only want the CI to run when modifying dotnet.bootstrap.py |
I tried the dotnet.bootstrap.py tool on Fedora 25. What I found out:
All in all, I liked how the tool helps bootstrapping. Using the scripts, it has a nice workflow a la "bootstrap --continue". |
@tmds Fantastic feedback! Thank you!
Again, thank you for sharing your experience with using this tool! |
Second attempt of bootstrapping on Fedora 25. Install Fedora 25Install dependencies
Get Rover
Get payload SDKUsing Fedora 24 .NET Core 1.1 SDK:
Select your branches
I let rover pick branches for libuv and core-setup:
Bootstrap
Does it work?Edited: |
This PR also adds a ubuntu directory with submodules. Was that expected or was output from a local invocation of the tool accidentally included? |
@ellismg Accident. I will fix this up and close it up now actually. |
@tmds Oops, I do actually have the check for chmod +x on the repro scripts. If you run the script in sudo mode this is the only time I will set the X bit on the repro script. |
test ci please |
Tool itself is functional, but need to build the testing pieces.
Going to start a list here, we've got good discussions and feedback happening, so I thought I'd just keep the work centralized here so that everyone is in the loop as to what I am up to (I click the checkbox as I accomplish the work - pushes will be intermittent throughout the day; order is determined by mood):