{"action":"created","comment":{"url":"https://api.github.com/repos/luna/luna-rfcs/pulls/comments/165860048","pull_request_review_id":93860002,"id":165860048,"diff_hunk":"@@ -0,0 +1,408 @@\n+___\n+- **Feature Name:** Luna Build\n+- **Start Date:** 2018-02-03\n+- **Change Type:** Non-Breaking\n+- **RFC Dependencies:**\n+- **RFC PR:** \n+- **Luna Issue:** \n+- **Implemented:** \n+\n+# Summary\n+The success of a language is often inextricably tied to the way that you manage\n+projects and packages in it. Luna wants to have one way to do things, and so\n+this proposal introduces a combination package manager and build tool that \n+operates as part of the Luna toolchain. This tool is Luna Build.\n+\n+# Motivation\n+An effective system for managing projects and package downloads is central to\n+the success of any language. However, it is often the case that a language \n+without an opinionated solution, or an officially endorsed solution ends up with\n+a proliferation of alternatives. This leaves users of the language segmented,\n+with different projects using disparate build systems (e.g. Maven and Gradle in\n+the Java community). This fragmentation story is often repeated, but in \n+situations where the community has rallied around a single tool (e.g. Cargo for\n+Rust), the ecosystem turns out to be far more coherent.\n+\n+Far from wanting Luna's ecosystem to suffer the same fate as Java or C++, this \n+proposal introduces an upgrade to the Luna toolchain that provides an integrated\n+package management and build system usable directly from the `luna` \n+command-line. 'Luna Build', as this RFC terms it, provides functionality for\n+managing projects and dependencies, creating and manipulating sandboxes, and \n+installing packages and dependencies. All of this functionality is as automatic\n+as possible, providing our users with a lightning-fast workflow for creating\n+and working on Luna packages. \n+\n+This RFC's automation treads a fine-line between enabling a diverse range of \n+use-cases, and easily supporting the Luna tenet of there being one correct way\n+to perform a task. It covers package creation and deployment, to user install\n+management. Without these features, it is likely that Luna will find such duties\n+taken over by a fractured mess of external tools, thus robbing the community of\n+the best possible experience. \n+\n+# Guide-Level Explanation\n+Luna provides comprehensive functionality for managing projects and packages \n+using the integrated tool called Luna build! Today, we're going to look at a\n+basic example of how you can create your own project and upload it to the \n+package repository.\n+\n+Creating a Luna project is as easy as typing `luna init test-project`, giving us\n+a new folder in our current directory called `test-project` containing all we \n+need to get started! If you take a look inside, your project will look something\n+like this:\n+\n+```\n+project-name/\n+ ├─ .luna_project/\n+ ├─ dist/ \n+ ├─ src/\n+ ├─ test/\n+ ├─ LICENSE\n+ └─ .gitignore\n+```\n+\n+So we just want to make a basic 'hello, world' application, so all you need to\n+do is head into the `src/` directory. Inside, you'll find a file called \n+`Main.luna`. Now, Luna Build is pretty sophisticated, and based on the presence\n+of a main function in this file it can work out that we're trying to build an \n+application. So all we need to do is open it up, and put in our main:\n+\n+```\n+def main:\n+    print \"Hello, world!\"\n+```\n+\n+We have some code, so let's build it! All it takes is running `luna build` on \n+our command line, and we have an executable. You can run it via `luna exec`, and\n+you'll see our greeting printed to `stdout`!\n+\n+Now, _real_ projects are a bit more complex than the stalwart hello world, so \n+let's say we want to fire off some missiles! We're very fortunate that someone\n+has written a library just for us `acme-missiles`, providing the module \n+`AcmeMissiles`. Now dependency management in Luna is _far_ more automatic than\n+you might be used to, so just stick with me!\n+\n+First, we open up our `Main.luna` again, and add an import to the top. We can\n+then modify our main function to fire some missiles:\n+\n+```\n+import AcmeMissiles\n+\n+def main:\n+    AcmeMissiles.fire 3\n+```\n+\n+Now, type `luna build` again. This is where the magic happens. Luna knows about\n+the structure of your project, and automatically detects your dependencies. As\n+part of this build it's going to download and install the latest version of \n+AcmeMissiles, and then build your project. We can again run this with \n+`luna exec`, and you'll see `Fire! Fire! Fire!` printed to `stdout`.\n+\n+Now say, for example, that we've added this missile launch to our code, but we\n+want to be able to check that we're firing _exactly_ the right number of \n+missiles. Did someone say a test suite? \n+\n+Luna Build includes robust testing support as well, and all you have to do is \n+go into the `test/` directory, and add your tests to `TestMain.luna`. Let's open\n+this up and write a test!\n+\n+```\n+def myTest :: Bool\n+def myTest:\n+    mainResult = main\n+    numMissiles = mainResult.split \" \"\n+    result = numMissiles.length\n+    result\n+\n+def TestMain:\n+    testResult = myTest\n+    testResult\n+```\n+\n+Let's run `luna test` and see what we get! Luna automatically converts a boolean\n+output from `TestMain` into a return code on stdout, so we see `0` and we're all\n+happy! Our code works properly.\n+\n+You haven't touched your project in a while, but you've heard that there's a new\n+version of your dependency `acme-missiles` that makes it even more exciting! We\n+want it, but Luna doesn't automatically upgrade dependencies (getting you all\n+the reproducible build goodness). In this kind of situation, however, we _want_\n+the new version! All we have to do is type `luna upgrade acme-missiles`, and \n+Luna Build will automatically upgrade us to the latest version! Now if we run\n+`luna build; luna exec` again, we see the more exciting result:\n+\n+```\n+Fire!!! Fire!!! Fire!!!\n+```\n+\n+Luna Build can do a lot more than this, and if you fancy learning about all the \n+other cool things that it can do, take a read of the\n+[Luna Book](https://luna-lang.gitbooks.io/docs/), and its section on Luna Build.\n+\n+# Reference-Level Explanation\n+This RFC proposes to extend the `luna` command-line interface with a set of \n+additional commands to allow for comprehensive, automated project and package\n+management. \n+\n+## Compiler Management\n+The `luna` command line tool will be extended with an additional sub-commend\n+`update`. This will automatically download and update the system-wide install\n+of Luna to the latest available version.\n+\n+The `luna` command-line tool will be extended with two additional sub-commands\n+to allow for management of the Luna install. These commands are as follows:\n+\n+- `update [RELEASE-BRANCH]`: Updates the system installation of Luna to the \n+  most recently released version on the specified `RELEASE-BRANCH`. If no branch\n+  is specified it defaults to stable rather than nightly.\n+- `reset VERSION`: Resets the system installation of Luna to the specified \n+  `VERSION`. \n+\n+## Project Management\n+Luna aims to automate the management of Luna projects as much as possible. As a\n+result, it provides just a few commands that allow you to perform every task you\n+need to when it comes to managing and publishing your projects. This RFC \n+proposes extending the `luna` command with these following sub-commands:\n+\n+- `init NAME`: Creates a new project in the current directory using the name \n+  `NAME`. The project will be configured to use the latest Luna version, and \n+  will have the structure described in [Project Structure](#project-structure).\n+- `build`: Builds the project. What is built for a given project and how it is\n+  determined can be found below. As part of this, any dependencies that are not\n+  installed will be downloaded and installed into the global package database \n+  for you, before being linked into your project sandbox.\n+- `exec [FLAGS]`: Executes the application that has been built, passing the\n+  provided flags.\n+- `test`: This will run all the tests contained within the `test/` directory.\n+- `clean`: This command will remove any artefacts built from the project, \n+  including documentation, cached LIR and binaries. \n+- `doc`: This command will automatically traverse the source directory and build\n+  HTML documentation from any of the doc comments found in the sources. \n+- `dep`: This command is used for managing project dependencies. While they are\n+  automatically discovered from the code, this command provides three\n+  sub-commands to assist with version management:\n+  + `update [DEPENDENCY]`: Updates all non-frozen dependencies (or the specified \n+    `DEPENDENCY`) to the latest version.\n+  + `freeze DEPENDENCY[-VERSION]`: Freezes the dependency at the current version\n+    found in `deps.yaml`, or to the specified version.\n+  + `unfreeze DEPENDENCY`: Unfreezes the version bound on a dependency.\n+  + `rollback`: Rolls back the last dependency change operation.\n+- `login [REPOSITORY]`: Logs you into the default (or specified) repository. \n+  User accounts can be associated with organisations on the package repository.\n+- `logout [REPOSITORY]`: Logs you out of the default (or specified) repository.\n+- `publish [major] [minor] [REPOSITORY]`: Publishes your project to the default\n+  (or specified) repository. If neither `major` or `minor` is specified, it will\n+  be published with a minor version bump. The default project version is `0.1`.\n+  This command will automatically ask for publish confirmation.\n+- `retract VERSION [REPOSITORY]`: Retracts a specific version of your project\n+  from the default (or specified) repository. This can be used for removing \n+  broken packages. \n+\n+### Project Structure\n+Luna projects created by Luna build will all have a consistent structure. This\n+structure will have the following tree:\n+\n+```\n+project-name/\n+ ├─ .luna_project/\n+ │   ├─ config.yaml\n+ │   └─ deps.yaml\n+ ├─ dist/ \n+ │   └─ .lir/\n+ ├─ src/\n+ │   └─ Main.luna\n+ ├─ test/\n+ │   └─ TestMain.luna\n+ ├─ LICENSE\n+ └─ .gitignore\n+```\n+\n+The directories and files are described as follows:\n+\n+- `.luna-project/`: This is a hidden configuration directory that contains the\n+  automatically-generated project configuration. \n+  + `config.yaml`: This configuration file is automatically generated, but can\n+    be edited by the user to specify additional configuration information. The\n+    options are found in [Project Configuration](#project-configuration) below.\n+  + `deps.yaml`: This file is not to be edited by the user. It contains a record\n+    of all of the current project dependencies and their versions. It is kept\n+    with the project and ensures that any user of the project gets a \n+    reproducible build. It contains versions of both library and tool \n+    dependencies, and handles external tools for ESA plugins.\n+- `dist/`: This directory contains any binary artefacts produced as a result of\n+  building the Luna project.\n+  + `.lir/`: This directory is a cache of the Luna Intermediate Representation\n+    for the repository. LIR is versioned, and included with prebuilt packages. \n+- `src/`: This is the source directory for the project. It contains a blank\n+  `Main.luna` that is used as the project entry point.\n+- `test/`: This directory is used to contain tests for the project. It contains\n+  a default `TestMain.luna` which is executed as the entry point for running \n+  your tests. By default, this will return a success or fail exit code to \n+  `stdin` or `stderr`.\n+- `LICENSE`: A blank license file. If you attempt to publish the project with a\n+  blank license, an error will be generated. \n+- `.gitignore`: A default `.gitignore` set up to ignore Luna project build \n+  artefacts.\n+\n+It should be noted that when creating a Luna project through the GUI, one \n+additional file will be created under the project root:\n+- `.lunaproject`: This file is not for user editing and specifies the project","path":"text/0000-luna-build.md","position":248,"original_position":248,"commit_id":"8aaf0b1a8e1b9056a7ef9cebb91045765b388c6b","original_commit_id":"8aaf0b1a8e1b9056a7ef9cebb91045765b388c6b","user":{"login":"iamrecursion","id":5780639,"avatar_url":"https://avatars1.githubusercontent.com/u/5780639?v=4","gravatar_id":"","url":"https://api.github.com/users/iamrecursion","html_url":"https://github.com/iamrecursion","followers_url":"https://api.github.com/users/iamrecursion/followers","following_url":"https://api.github.com/users/iamrecursion/following{/other_user}","gists_url":"https://api.github.com/users/iamrecursion/gists{/gist_id}","starred_url":"https://api.github.com/users/iamrecursion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iamrecursion/subscriptions","organizations_url":"https://api.github.com/users/iamrecursion/orgs","repos_url":"https://api.github.com/users/iamrecursion/repos","events_url":"https://api.github.com/users/iamrecursion/events{/privacy}","received_events_url":"https://api.github.com/users/iamrecursion/received_events","type":"User","site_admin":false},"body":"Very fair! I do think it would be a sensible change to make. ","created_at":"2018-02-04T22:08:47Z","updated_at":"2018-02-04T22:08:47Z","html_url":"https://github.com/luna/luna-rfcs/pull/6#discussion_r165860048","pull_request_url":"https://api.github.com/repos/luna/luna-rfcs/pulls/6","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/comments/165860048"},"html":{"href":"https://github.com/luna/luna-rfcs/pull/6#discussion_r165860048"},"pull_request":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/6"}},"in_reply_to_id":165857269},"pull_request":{"url":"https://api.github.com/repos/luna/luna-rfcs/pulls/6","id":166973458,"html_url":"https://github.com/luna/luna-rfcs/pull/6","diff_url":"https://github.com/luna/luna-rfcs/pull/6.diff","patch_url":"https://github.com/luna/luna-rfcs/pull/6.patch","issue_url":"https://api.github.com/repos/luna/luna-rfcs/issues/6","number":6,"state":"open","locked":false,"title":"Luna Build","user":{"login":"iamrecursion","id":5780639,"avatar_url":"https://avatars1.githubusercontent.com/u/5780639?v=4","gravatar_id":"","url":"https://api.github.com/users/iamrecursion","html_url":"https://github.com/iamrecursion","followers_url":"https://api.github.com/users/iamrecursion/followers","following_url":"https://api.github.com/users/iamrecursion/following{/other_user}","gists_url":"https://api.github.com/users/iamrecursion/gists{/gist_id}","starred_url":"https://api.github.com/users/iamrecursion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iamrecursion/subscriptions","organizations_url":"https://api.github.com/users/iamrecursion/orgs","repos_url":"https://api.github.com/users/iamrecursion/repos","events_url":"https://api.github.com/users/iamrecursion/events{/privacy}","received_events_url":"https://api.github.com/users/iamrecursion/received_events","type":"User","site_admin":false},"body":"The success of a language is often inextricably tied to the way that you manage projects and packages in it. Luna wants to have one way to do things, and so this proposal introduces a combination package manager and build tool that operates as part of the Luna toolchain. This tool is Luna Build.\r\n\r\n[Rendered](https://github.com/luna/luna-rfcs/blob/package-manager/text/0000-luna-build.md)","created_at":"2018-02-03T18:13:21Z","updated_at":"2018-02-04T22:08:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"769181197f6b107bd8e14d2ea6dbd4fb42d6fc30","assignee":{"login":"kustosz","id":1214109,"avatar_url":"https://avatars2.githubusercontent.com/u/1214109?v=4","gravatar_id":"","url":"https://api.github.com/users/kustosz","html_url":"https://github.com/kustosz","followers_url":"https://api.github.com/users/kustosz/followers","following_url":"https://api.github.com/users/kustosz/following{/other_user}","gists_url":"https://api.github.com/users/kustosz/gists{/gist_id}","starred_url":"https://api.github.com/users/kustosz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kustosz/subscriptions","organizations_url":"https://api.github.com/users/kustosz/orgs","repos_url":"https://api.github.com/users/kustosz/repos","events_url":"https://api.github.com/users/kustosz/events{/privacy}","received_events_url":"https://api.github.com/users/kustosz/received_events","type":"User","site_admin":false},"assignees":[{"login":"kustosz","id":1214109,"avatar_url":"https://avatars2.githubusercontent.com/u/1214109?v=4","gravatar_id":"","url":"https://api.github.com/users/kustosz","html_url":"https://github.com/kustosz","followers_url":"https://api.github.com/users/kustosz/followers","following_url":"https://api.github.com/users/kustosz/following{/other_user}","gists_url":"https://api.github.com/users/kustosz/gists{/gist_id}","starred_url":"https://api.github.com/users/kustosz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kustosz/subscriptions","organizations_url":"https://api.github.com/users/kustosz/orgs","repos_url":"https://api.github.com/users/kustosz/repos","events_url":"https://api.github.com/users/kustosz/events{/privacy}","received_events_url":"https://api.github.com/users/kustosz/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/luna/luna-rfcs/pulls/6/commits","review_comments_url":"https://api.github.com/repos/luna/luna-rfcs/pulls/6/comments","review_comment_url":"https://api.github.com/repos/luna/luna-rfcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/luna/luna-rfcs/issues/6/comments","statuses_url":"https://api.github.com/repos/luna/luna-rfcs/statuses/8aaf0b1a8e1b9056a7ef9cebb91045765b388c6b","head":{"label":"luna:package-manager","ref":"package-manager","sha":"8aaf0b1a8e1b9056a7ef9cebb91045765b388c6b","user":{"login":"luna","id":17415943,"avatar_url":"https://avatars0.githubusercontent.com/u/17415943?v=4","gravatar_id":"","url":"https://api.github.com/users/luna","html_url":"https://github.com/luna","followers_url":"https://api.github.com/users/luna/followers","following_url":"https://api.github.com/users/luna/following{/other_user}","gists_url":"https://api.github.com/users/luna/gists{/gist_id}","starred_url":"https://api.github.com/users/luna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luna/subscriptions","organizations_url":"https://api.github.com/users/luna/orgs","repos_url":"https://api.github.com/users/luna/repos","events_url":"https://api.github.com/users/luna/events{/privacy}","received_events_url":"https://api.github.com/users/luna/received_events","type":"Organization","site_admin":false},"repo":{"id":118162313,"name":"luna-rfcs","full_name":"luna/luna-rfcs","owner":{"login":"luna","id":17415943,"avatar_url":"https://avatars0.githubusercontent.com/u/17415943?v=4","gravatar_id":"","url":"https://api.github.com/users/luna","html_url":"https://github.com/luna","followers_url":"https://api.github.com/users/luna/followers","following_url":"https://api.github.com/users/luna/following{/other_user}","gists_url":"https://api.github.com/users/luna/gists{/gist_id}","starred_url":"https://api.github.com/users/luna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luna/subscriptions","organizations_url":"https://api.github.com/users/luna/orgs","repos_url":"https://api.github.com/users/luna/repos","events_url":"https://api.github.com/users/luna/events{/privacy}","received_events_url":"https://api.github.com/users/luna/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/luna/luna-rfcs","description":"RFCs for changes to the Luna language and compiler","fork":false,"url":"https://api.github.com/repos/luna/luna-rfcs","forks_url":"https://api.github.com/repos/luna/luna-rfcs/forks","keys_url":"https://api.github.com/repos/luna/luna-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/luna/luna-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/luna/luna-rfcs/teams","hooks_url":"https://api.github.com/repos/luna/luna-rfcs/hooks","issue_events_url":"https://api.github.com/repos/luna/luna-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/luna/luna-rfcs/events","assignees_url":"https://api.github.com/repos/luna/luna-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/luna/luna-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/luna/luna-rfcs/tags","blobs_url":"https://api.github.com/repos/luna/luna-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/luna/luna-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/luna/luna-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/luna/luna-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/luna/luna-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/luna/luna-rfcs/languages","stargazers_url":"https://api.github.com/repos/luna/luna-rfcs/stargazers","contributors_url":"https://api.github.com/repos/luna/luna-rfcs/contributors","subscribers_url":"https://api.github.com/repos/luna/luna-rfcs/subscribers","subscription_url":"https://api.github.com/repos/luna/luna-rfcs/subscription","commits_url":"https://api.github.com/repos/luna/luna-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/luna/luna-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/luna/luna-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/luna/luna-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/luna/luna-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/luna/luna-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/luna/luna-rfcs/merges","archive_url":"https://api.github.com/repos/luna/luna-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/luna/luna-rfcs/downloads","issues_url":"https://api.github.com/repos/luna/luna-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/luna/luna-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/luna/luna-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/luna/luna-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/luna/luna-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/luna/luna-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/luna/luna-rfcs/deployments","created_at":"2018-01-19T18:25:23Z","updated_at":"2018-01-27T23:33:22Z","pushed_at":"2018-02-04T17:41:22Z","git_url":"git://github.com/luna/luna-rfcs.git","ssh_url":"git@github.com:luna/luna-rfcs.git","clone_url":"https://github.com/luna/luna-rfcs.git","svn_url":"https://github.com/luna/luna-rfcs","homepage":"https://www.luna-lang.org","size":63,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":7,"watchers":1,"default_branch":"master"}},"base":{"label":"luna:master","ref":"master","sha":"5c5f118fb63a0719ca5d5c6d5dca1a49074603a8","user":{"login":"luna","id":17415943,"avatar_url":"https://avatars0.githubusercontent.com/u/17415943?v=4","gravatar_id":"","url":"https://api.github.com/users/luna","html_url":"https://github.com/luna","followers_url":"https://api.github.com/users/luna/followers","following_url":"https://api.github.com/users/luna/following{/other_user}","gists_url":"https://api.github.com/users/luna/gists{/gist_id}","starred_url":"https://api.github.com/users/luna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luna/subscriptions","organizations_url":"https://api.github.com/users/luna/orgs","repos_url":"https://api.github.com/users/luna/repos","events_url":"https://api.github.com/users/luna/events{/privacy}","received_events_url":"https://api.github.com/users/luna/received_events","type":"Organization","site_admin":false},"repo":{"id":118162313,"name":"luna-rfcs","full_name":"luna/luna-rfcs","owner":{"login":"luna","id":17415943,"avatar_url":"https://avatars0.githubusercontent.com/u/17415943?v=4","gravatar_id":"","url":"https://api.github.com/users/luna","html_url":"https://github.com/luna","followers_url":"https://api.github.com/users/luna/followers","following_url":"https://api.github.com/users/luna/following{/other_user}","gists_url":"https://api.github.com/users/luna/gists{/gist_id}","starred_url":"https://api.github.com/users/luna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luna/subscriptions","organizations_url":"https://api.github.com/users/luna/orgs","repos_url":"https://api.github.com/users/luna/repos","events_url":"https://api.github.com/users/luna/events{/privacy}","received_events_url":"https://api.github.com/users/luna/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/luna/luna-rfcs","description":"RFCs for changes to the Luna language and compiler","fork":false,"url":"https://api.github.com/repos/luna/luna-rfcs","forks_url":"https://api.github.com/repos/luna/luna-rfcs/forks","keys_url":"https://api.github.com/repos/luna/luna-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/luna/luna-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/luna/luna-rfcs/teams","hooks_url":"https://api.github.com/repos/luna/luna-rfcs/hooks","issue_events_url":"https://api.github.com/repos/luna/luna-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/luna/luna-rfcs/events","assignees_url":"https://api.github.com/repos/luna/luna-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/luna/luna-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/luna/luna-rfcs/tags","blobs_url":"https://api.github.com/repos/luna/luna-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/luna/luna-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/luna/luna-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/luna/luna-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/luna/luna-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/luna/luna-rfcs/languages","stargazers_url":"https://api.github.com/repos/luna/luna-rfcs/stargazers","contributors_url":"https://api.github.com/repos/luna/luna-rfcs/contributors","subscribers_url":"https://api.github.com/repos/luna/luna-rfcs/subscribers","subscription_url":"https://api.github.com/repos/luna/luna-rfcs/subscription","commits_url":"https://api.github.com/repos/luna/luna-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/luna/luna-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/luna/luna-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/luna/luna-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/luna/luna-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/luna/luna-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/luna/luna-rfcs/merges","archive_url":"https://api.github.com/repos/luna/luna-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/luna/luna-rfcs/downloads","issues_url":"https://api.github.com/repos/luna/luna-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/luna/luna-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/luna/luna-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/luna/luna-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/luna/luna-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/luna/luna-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/luna/luna-rfcs/deployments","created_at":"2018-01-19T18:25:23Z","updated_at":"2018-01-27T23:33:22Z","pushed_at":"2018-02-04T17:41:22Z","git_url":"git://github.com/luna/luna-rfcs.git","ssh_url":"git@github.com:luna/luna-rfcs.git","clone_url":"https://github.com/luna/luna-rfcs.git","svn_url":"https://github.com/luna/luna-rfcs","homepage":"https://www.luna-lang.org","size":63,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":7,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/6"},"html":{"href":"https://github.com/luna/luna-rfcs/pull/6"},"issue":{"href":"https://api.github.com/repos/luna/luna-rfcs/issues/6"},"comments":{"href":"https://api.github.com/repos/luna/luna-rfcs/issues/6/comments"},"review_comments":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/6/comments"},"review_comment":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/luna/luna-rfcs/pulls/6/commits"},"statuses":{"href":"https://api.github.com/repos/luna/luna-rfcs/statuses/8aaf0b1a8e1b9056a7ef9cebb91045765b388c6b"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"iamrecursion"}}