2019-08-28 19:00:04 +03:00
|
|
|
## Introduction
|
|
|
|
|
2019-08-28 19:10:50 +03:00
|
|
|
Thanks for your interest in contributing to the Urbit interface. This section
|
2019-08-28 19:00:04 +03:00
|
|
|
specifically focuses on Landscape development. Landscape lets you integrate your
|
|
|
|
ship with front-end web applications accessed through the browser. It has a core
|
|
|
|
set of applications that accept contributions.
|
|
|
|
|
|
|
|
Related to Landscape is [Gall][gall], the Arvo vane that controls userspace
|
|
|
|
applications. Landscape applications will usually make good use of Gall, but
|
|
|
|
it's not strictly required if a Landscape application is not interacting with
|
|
|
|
ships directly.
|
|
|
|
|
|
|
|
Create a development ship, then once your ship is running, mount to Unix with
|
|
|
|
`|mount %`. This will create a folder named 'home' in your pier in Unix. The
|
|
|
|
'home' desk contains the working state of your ship -- like a Git repository,
|
|
|
|
when you want to make a change to it, `|commit %home`.
|
|
|
|
|
|
|
|
## Contributing to Landscape applications
|
|
|
|
|
|
|
|
If you'd like to contribute to the core set of Landscape applications in this
|
|
|
|
repository, clone this repository and start by creating an `urbitrc` file in
|
|
|
|
this folder, [pkg/interface][interface]. You can find an `urbitrc-sample` here
|
|
|
|
for reference. Then `cd` into the application's folder and `npm install` the
|
|
|
|
dependencies, then `gulp watch` to watch for changes.
|
|
|
|
|
2019-08-28 21:05:07 +03:00
|
|
|
On your development ship, ensure you `|commit %home` to apply your changes.
|
2019-08-28 19:00:04 +03:00
|
|
|
Once you're done and ready to make a pull request, running `gulp bundle-prod`
|
|
|
|
will make the production files and deposit them in [pkg/arvo][arvo]. Create a
|
|
|
|
pull request with both the production files, and the source code you were
|
|
|
|
working on in the interface directory.
|
|
|
|
|
2019-08-28 19:10:50 +03:00
|
|
|
Please also ensure your pull request fits our standards for
|
2019-08-28 19:00:04 +03:00
|
|
|
[Git hygiene][contributing].
|
|
|
|
|
2019-08-28 19:10:50 +03:00
|
|
|
[contributing]: /CONTRIBUTING.md#git-practice
|
|
|
|
[arvo]: /pkg/arvo
|
2019-08-28 19:00:04 +03:00
|
|
|
[interface]:/pkg/interface
|
|
|
|
|
|
|
|
### Gall
|
|
|
|
|
|
|
|
Presently, Gall documentation is still in [progress][gall], but a good
|
|
|
|
reference. For examples of Landscape apps that use Gall, see the code for
|
|
|
|
[Chat][chat] and [Publish][publish].
|
|
|
|
|
|
|
|
## Creating your own applications
|
|
|
|
|
|
|
|
If you'd like to create your own application for Landscape, the easiest way to
|
|
|
|
get started is using the [create-landscape-app][cla] repository template. It
|
|
|
|
provides a brief wizard when you run it with `npm start`, and has good
|
|
|
|
documentation for its everyday use -- just create a repo [using its
|
|
|
|
template][template], install and then start it, and you'll soon be up and
|
|
|
|
running.
|
|
|
|
|
2019-08-28 19:10:50 +03:00
|
|
|
[cla]: https://github.com/urbit/create-landscape-app
|
|
|
|
[template]: https://github.com/urbit/create-landscape-app/generate
|
|
|
|
[gall]: https://urbit.org/docs/learn/arvo/gall/
|
2019-08-28 19:00:04 +03:00
|
|
|
[chat]: /pkg/arvo/app/chat.hoon
|
2019-08-28 19:10:50 +03:00
|
|
|
[publish]: /pkg/arvo/app/publish.hoon
|