This project is a fork of the unleashed.git project. If you have that one already cloned locally, you can use
git clone --reference /path/to/your/unleashed.git/incarnation mirror_URL
to save bandwidth during cloning.
 
descriptionfork for stuff
ownerxorhash@protonmail.com
last changeWed, 14 Feb 2018 19:45:44 +0000 (14 14:45 -0500)
content tags
add:
README.md

We think that operating systems are very exciting to work on; In particular, we enjoy working with descendants of OpenSolaris. Unfortunately, we feel that the major OpenSolaris fork - illumos - has adopted a contribution process that hinders development and discourages new contributors from coming back with more code changes. Therefore, we created this fork to try to address these issues.

Goals

While the full list of goals is constantly evolving, the following is a list of the basic goals which we always strive for.

  1. The contribution process must be simple and must encourage new contributors to repeatedly contribute.
  2. We aim to have periodic releases (roughly one every 6 months). Security patches will be provided between releases.
  3. Unleashed aims to be a modern operating system base.
    1. Modern compiler support. Currently, the base system can only be built with gcc 4.4.4, however we hope to allow a wider range of gcc versions. Eventually, we would like to be able to use clang as well.
    2. The UNIX environment has changed drastically over the past 20 years. As a result, we hope to ship an environment that provides the comforts of modern UNIX, yet maintains the unique features we inherited that set us apart from other UNIX systems out there.
    3. POSIX has won. Therefore, when it does not hinder usability (see item 3.2), we want a system that is POSIX compliant without having to jump through special hoops (e.g., setting $PATH, or providing extra compiler flags).
    4. We do not support "extreme legacy". While support for legacy interfaces and binaries is important, it must be done in moderation. Therefore, old interfaces may be removed from time to time. Interface deprecation will be clearly communicated through release notes.
  4. Maintaining code is hard enough when the code is squeaky clean. To make our job easier, we try to get the code clean when first committing it - even if it delays the commit a little bit. In other words, we care about more than just that the code works - we want code we can (for the most part) be proud of.

Rules

We believe that our community members can behave responsibly both when communicating with others as well as when committing code to the repository. To help guide newcomers, we have created a Code of Conduct (see docs/code-of-conduct.md) that we expect everyone to abide by. The community organization is described in docs/organization.md.

Commits

Commits are cheap. Modern revision control systems (e.g., git) handle large numbers of commits very well. Therefore small changes are encouraged (instead of "mega commits" that seem to touch half the code base). Smaller commits make it easier to search through commit history to see what other parts of the repository were changed as part of the change. Additionally, small changes are easier to review.

Each commit should build and boot. Obviously, running nightly and a full set of tests for each commit is not necessarily practical, however one should try to avoid commits that break the build. (Commits that don't build or boot make it harder to bisect the history to find bad commits.)

For the most part, we use a Linux kernel-style commit messages. If there is a bug number reference it. For example:

subsys: frob the input 7 times

frobbing less than 7 times leads to information disclosure
vulnerability.

illumos bug #123

Spelling of comments fixed up by: Committer Developer <c.d@example.com>
shortlog
2018-02-14 Josef 'Jeff... pkg: fix up ncurses manifest to avoid packaging warningmaster
2018-02-14 xorhashman8: remove old curses man pages from Makefile
2018-02-14 xorhashFEATURES: note 1M -> 8 man page section move
2018-02-14 xorhashChange 1M to 8 references in code
2018-02-14 xorhashMove core man pages 1M -> 8
2018-02-14 Alexander Ereminremove /usr/ccs directory
2018-02-13 Josef 'Jeff... Merge branch 'etc-cleanup'
2018-02-13 Josef 'Jeff... remove compat bin & sbin symlinks from /etc
2018-02-13 Josef 'Jeff... bmake-ify 'nsadmin'
2018-02-13 Lauri Tirkkonenhow-to-build: build user needs write access to /usr/obj
2018-02-12 Lauri Tirkkonenbuild: use plain 'git describe' for versiondescribe
2018-02-12 Josef 'Jeff... FEATURES: correct description of cpio boot archives
2018-02-12 Josef 'Jeff... Merge branch 'master'v1.0-rc1
2018-02-12 Josef 'Jeff... kernel: remove support for -x boot flag
2018-02-12 Josef 'Jeff... kernel: remove mentions of SPARC specific dirs from...
2018-02-12 Alexander Ereminget_sock_peer_name: wrong number of arg descriptors
...
tags
6 years ago v1.0-rc1 Unleashed v1.0-rc1
heads
6 years ago master
6 years ago bsm
6 years ago describe
6 years ago ttytabs
6 years ago libc
6 years ago ksh
6 years ago configurable-objroot