Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Update Readme.md to lead you through basic repo workflow #7552

Merged
merged 18 commits into from
Oct 11, 2016

Conversation

vancem
Copy link

@vancem vancem commented Oct 10, 2016

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.

@vancem
Copy link
Author

vancem commented Oct 10, 2016

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.

@vancem
Copy link
Author

vancem commented Oct 10, 2016

@jkotas @stephentoub. I am updating the readme in a fairly major way.

Copy link
Member

@jkotas jkotas left a 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).
Copy link
Member

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.
Copy link
Member

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.
Copy link
Member

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.
Copy link
Member

@jkotas jkotas Oct 11, 2016

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.

Copy link
Author

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/)
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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.
Copy link
Member

@jkotas jkotas Oct 11, 2016

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'
Copy link
Member

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.
Copy link
Member

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
Copy link
Member

Choose a reason for hiding this comment

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

althoughw -> although

Copy link
Author

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.

@vancem
Copy link
Author

vancem commented Oct 11, 2016

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.

@vancem vancem merged commit 7c2cf60 into dotnet:master Oct 11, 2016
@vancem vancem deleted the DocUpdates.10-7-16 branch October 11, 2016 16:10
@choikwa
Copy link

choikwa commented Oct 21, 2016

Just a nit, any particular reason for moving build status from README.md to Documentation/workflow/OfficalAndDailyBuilds.md?

@vancem
Copy link
Author

vancem commented Oct 21, 2016

@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).

sergign60 pushed a commit to sergign60/coreclr that referenced this pull request Nov 14, 2016
Update README.md to contain much more information about using the repo
@karelz karelz added this to the 2.0.0 milestone Aug 28, 2017
@karelz karelz added this to the 2.0.0 milestone Aug 28, 2017
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
…clr#7552)

Update README.md to contain much more information about using the repo

Commit migrated from dotnet/coreclr@7c2cf60
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants