Changeset
A changeset is a group of edits made within a certain time by one user. A changeset has a maximum capacity (currently 50,000 edits) and maximum lifetime (currently 24 hours). Edits can only be added to a changeset as long as it is still open, and having an open changeset is required for any edits. A changeset can either be closed explicitly, or it closes itself if no edits are added to it for a period of inactivity (currently one hour).
The same user can have multiple active changesets at the same time. Changesets were introduced with API v0.6 in April 2009. Changesets were "synthesised" for edits before that date.
For technical details, see the API 0.6 documentation which contains extensive documentation on them. See also the Get Capabilities documentation.
Changesets are what you see when you are looking at the History tab on the main site. They have an "extent" which is a rectangle surrounding all the changes - especially for "bots" that make small changes around the world. This is why many changesets show up for an area even when that changeset doesn't seem relevant.
Tags on changesets
Changesets have name=value pairs (Tags!). The vast majority of changesets will have these two tags:
- comment=* - describing why a mapper made that group of changes, or what was changed. While optional, mappers are encouraged to make full use of this tag by setting a meaningful, human-generated description (not an automated message), as it will show up almost everywhere where the changeset is listed, and is likely to be read by fellow mappers to try and understand what has happened.
- created_by=* - specify the editor or script which made the changes
Some other commonly used tags include:
- source=* - specify the source for a group of edits
- bot=yes - for Automated Edits, performed by a program (a.k.a. script or bot)
- is_in=*
Although this is a very similar concept to the free-form Tags we are familiar with applying to other types of elements, changeset tags were intended to provide a little bit flexibility for developers at the API level, and were not intended (in the original design discussions) to be editable in a free-form manner by end-users. JOSM developers, always opting for flexibility over user friendliness, have forgotten this and added changeset tag editing features.
Note that you cannot change a tag on a changeset after it has closed (in editors or via the API), and we do not store a history of changes to tags on changsets.