-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Update Readme.md to lead you through basic repo workflow #7552
Conversation
…ile tracing (echoing). This make debugging issues with build significantly easier.
I will be flattening the commits before I check in, so don't worry about that. It is just that I only want to do it once. |
@jkotas @stephentoub. I am updating the readme in a fairly major way. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vancem Thanks a lot for writing this down!
|
||
Visual Studio must be installed. Supported versions: | ||
|
||
- [Visual Studio 2015](https://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs) (Community, Professional, Enterprise) | ||
- [Visual Studio 2015](https://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs) (Community, Professional, Enterprise). The community version is completely free. | ||
|
||
To debug managed code, ensure you have installed atleast [Visual Studio 2015 Update 3](https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
atleast
-> at least
|
||
The CoreCLR repo build has been validated using CMake 3.5.2. | ||
|
||
- Install [CMake](http://www.cmake.org/download) for Windows. | ||
- Add it to the PATH environment variable. | ||
- Add it location (e.g. C:\Program Files (x86)\CMake\bin) to the PATH environment variable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it location
-> its location
PowerShell | ||
---------- | ||
PowerShell is used in the build system. Ensure that it is accessible via the PATH environment variable. Typically this is %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\. | ||
- Add it location (e.g. AppData\Local\Programs\Python\Python35-32\python.exe) to the PATH environment variable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it location
-> its location
PowerShell | ||
---------- | ||
PowerShell is used in the build system. Ensure that it is accessible via the PATH environment variable. Typically this is %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\. | ||
- Add it location (e.g. AppData\Local\Programs\Python\Python35-32\python.exe) to the PATH environment variable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you actually get your installed under AppData? I have not seen it before - I always get mine under c:\python27
. Also, the location should not include python.exe - to match the CMake example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On one machine that was the location, but I just checked another and it is at C:\Python27. I suspect it is the version you install, and maybe I was not admin at the time. Anyway I will change it to c:\Python* (it is just and example...)
|
||
Clone the CoreCLR and CoreFX repositories (either upstream or a fork). | ||
- Install [Git For Windws](https://git-for-windows.github.io/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Windws
-> Windows
|
||
Now Modify the HelloWorld\project.json with the following modifications | ||
|
||
1. **Remove** (or comment out) the following line fomr the Microsoft.NETCore.App dependency |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fomr
-> form
``` | ||
2. Add the following 'runtimes' line at the top level. The runtime name includes the OS name and the architecture name | ||
you can find the appropriate name for your OS [here](https://github.com/dotnet/core-docs/blob/master/docs/core/rid-catalog.md). | ||
This tells the tools exactly which favor of OS and processor architecture you are running on, so it can find the right |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
favor
-> flavor
|
||
* Coreclr.dll - Most modifications (with the exception of the JIT compiler and tools) that are C++ code update | ||
this DLL. | ||
* System.Private.CoreLib.dll - If you modified C# it will end up here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe worth mentioning System.Private.CoreLib.ni.dll
.NET Core relies heavily on the [Nuget](https://en.wikipedia.org/wiki/NuGet) package manager | ||
which is system to package, distribute and version software components. See [https://www.nuget.org/](https://www.nuget.org/) | ||
for more information on Nuget. For now it is enough to know Nuget is a system that | ||
bundles components into *.nupkg files (which are ZIP archives) and these packages can be 'published' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enclose *.nupkg
in backticks
* **Microsoft.NETCore.TestHost** - This contains the corehost.exe program, which is a small wrapper | ||
that uses the .NET Runtime to run IL DLLs passed to it on the command line. | ||
* **Microsoft.TargetingPack.Private.CoreCLR** - A set of assemblies that represent the compile time surface | ||
area of class library is implemented by the runtime itself. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is implemented
-> implemented
Python | ||
--------- | ||
Python is used in the build system. We are currently using python 2.7.9, although | ||
Python is used in the build system. We are currently using python 2.7.9, althoughw |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
althoughw
-> although
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have fixes this in the next round of updates.
I did an update on this branch (see vancem@45a2d73) but for some reason the pull request is not seeming to recognize that is there (during that time I did try to squash the commits and that may have something to do with it). I am going to merge and then insure that the edits got in. |
Just a nit, any particular reason for moving build status from README.md to Documentation/workflow/OfficalAndDailyBuilds.md? |
@choikwa. The rationale is that the readme can't do everything, and the its central purpose is to tell you how to use the repository's contents (that is build and use the build results). The build status does not fit that theme, so it got moved to a secondary page (one click from the first page). |
Update README.md to contain much more information about using the repo
…clr#7552) Update README.md to contain much more information about using the repo Commit migrated from dotnet/coreclr@7c2cf60
The previous README.md associated with the CoreCLR repo very inadequate for developers to successfully make a CoreCLR runtime change. There was simply too much missing information.
This update reorganizes the README.md to fix this. Now the README is a top level document that describes what the repo contains (new), tells you how to build it (existing), WHAT gets built (new), how to use the built artifacts (new), and how to run tests.
It still needs work (information on running tests is pretty incomplete as well as how to debug), but this is a big step forward.
Note that much of the content is new or dramatically changed, so it is probably easier to simply read the end result at https://github.com/vancem/coreclr/tree/DocUpdates.10-7-16, rather than try to read the diffs.
If the changes you want are hard to describe in the comments, you may wish to simply wait until I merge and then do the update yourself. My main goal is to insure that some basic information that I needed to actually do something useful with the Repo is there for others.