Skip to content

Properties

A property is a field on a task. That is the whole model: a name, a type, and — for the select types — a list of options. Status is one. So is anything you add. There is no second kind of field and no built-in spine underneath.

Under the surface a property is a row in properties, and a value is a row in task_values keyed by task and property. That is why adding a property costs nothing and deleting one takes its values with it.

Type Holds Can group a view In the panel it is
Select one option yes a segmented row, or a dropdown
Multi-select any number of options no chips plus a “find or add” menu
Iteration one option, and every option has dates yes a segmented row, or a dropdown
Person one member — a human or an agent yes an avatar, and a menu of everybody
Text free text, up to 2000 characters no a plain input
Number a number no an input, numeric keypad on a phone
Date a calendar date, YYYY-MM-DD no a native date picker, shown as Aug 28
Checkbox on or off yes a switch
Link up to 20 web addresses no links that open in a new tab, and a box to paste one more

Only select, iteration, person and checkbox can be a view’s grouping property, because a task must sit in exactly one column. A multi-select would put one card in three places at once.

A Link holds web addresses, such as the pull requests that carry a task’s code. The description already makes a URL clickable. A Link gives you what a description cannot: a filter, a sort, a chip on the card, and a value an agent can read back.

  • Only http and https. At most 20 links, each at most 2000 characters.
  • No link two times. The board compares links without the #fragment and without a trailing /, so the same pull request pasted two times is kept once.
  • How a link reads. A path that ends in /pull/N, /pulls/N, /issues/N or /merge_requests/N reads as owner/repo#N, on any host — GitHub, GitLab, Gitea. Any other link reads as its host and path, made shorter.
  • In the panel each link is a real link that opens in a new tab. Paste a link into the box and press Enter (or leave the box) to add it. Press its ✕ to remove it.
  • On the card a new Link property starts off the card. Put it on the card in Card view and the chip shows the first link and +N when there are more. The chip is words and not a link: a click on the card still opens the task.
  • A filter asks contains, does not contain, is empty and is not empty. Contains finds a match in any link of the list.
  • A sort uses the words of the first link. A task with no link sorts last.
  • The activity says how many links the value holds — “2 links” — and not the addresses.

The board never opens a link itself: no preview, no page title, no state of a pull request.

All of it is in Settings → Properties (/p/{project}/settings/properties), except reordering options, which happens on the board.

The bottom row of the card: a name, a type from the dropdown, and — for select and multi-select only — options, one per line, so an option name may hold a comma. A hint under the row explains the type currently chosen.

Name: Environment
Type: Select
Options: local
staging
production

New properties are appended last and start on the card, except a Link, which starts off it. A new property takes at most 40 options. A longer list is refused whole, never cut short: the box says “A property holds at most 40 options. This list has 60.” and nothing is written. The colours of the options cycle through the palette. Any member can add a property.

Click the name, type, click away. It saves on blur. Blank reverts.

+ option at the end of a select’s option row. Click an option’s name to rename it. Click its colour square for a popover of the twelve palette colours:

There is no colour wheel. It was removed on purpose: a board where anybody can pick any of sixteen million colours stops meaning anything, and two options a shade apart are worse than useless.

A new option takes the first palette colour nobody is using yet.

Give the options dates owner and admins

Section titled “Give the options dates ”

Releases and sprints carry dates. Turn them on in Settings → Project:

  • Use releases adds a property Release with no releases yet, and a roadmap Roadmap with a bar for each one.
  • Use sprints asks for a sprint’s length and the first day, then adds a property Sprint with Sprint 1 and Sprint 2, a board Sprint that shows the current sprint, and a list Backlog of the tasks in no sprint.

Each option of those properties takes a line of its own, with a Start, a Target and a Note, and Unship once it has shipped. A filter on that property can then say current: the option whose start and target hold today. Status and Priority carry no date boxes.

A switch reads which property it points at, never a name, so a select you name Sprint yourself is just a select. Turning a switch off asks first and deletes nothing: the property, its options, the values on the tasks and the views all stay, and turning it on again takes them back without making a second one. A select that carried dates before these switches keeps its date boxes, Ship and its roadmap.

For a Sprint property, current works another way. A sprint past its target that nobody has closed is still current, the oldest one first, because nothing ends a sprint but a press of Close. Its column header says “Ended 7 days ago” in place of the target day, on a line below the name. Close ends it, can move what is left to the next sprint, and makes that sprint from the sprint length when none follows. Closing archives nothing and writes no changelog entry: the finished tasks stay where they are, because the same task may still wait for a release. Only Ship on a release archives what is over.

Drag a row by the grip on its left. That order is the order of the fields in the task panel, of the chips that share a place on a card, and of the columns of a list. It is the only order the properties have, and everybody on the project shares it.

The keyboard does the same: Space lifts the row, the arrows move it, Space puts it down.

Drag an option by the grip at the left of its chip. The option order is the order of the columns on every board grouped by that property, and the order a sort uses, so Priority can be put in order although no board is grouped by it. It applies to everybody. Dragging a column header on the board makes the same change; see The board.

The keyboard does the same: Space lifts the chip, the arrows move it, Space puts it down.

Delete a property owner and admins

Section titled “Delete a property ”

The red ✕. The row becomes the question and names the cost in real numbers:

Delete Labels? 5 options and 14 values go with it. — Yes, delete · Cancel

A property that a view groups by cannot be deleted at all:

The view “Phases” groups by this property. Point it at another property first.

Delete an option owner and admins

Section titled “Delete an option ”

The ✕ on the option chip. The row of options becomes the question, and it counts the tasks that hold the option, archived ones included:

Delete Doing? 14 tasks lose it. — Yes, delete · Cancel

Nothing goes until you answer. Then the option is cleared from every single-select value and removed from every multi-select list. On a board grouped by that property its column goes too, and its cards move to the column for tasks with no value.

This page does not say which properties a card shows. The Card view page does, in one place: whether each property is on the card, where it sits — the edge stripe, either end of the header, the body, either end of the footer — and how it reads. A property taken off the card is still fully editable in the task panel. A card carrying eight fields is a table.