-
Notifications
You must be signed in to change notification settings - Fork 6
VERSION
-
M
: Major version -
N
: Minor version -
P
: Patch version -
Q
and so on: Additional fields - n consecutive lower-case letter(s) (
m
,nn
, ...): A n-digit corresponding field -
x
: A general 1-digit field -
CODENAME
: A codename field -
PRERELEASE
: A pre-release field (starts withalpha
/beta
/rc
)
The versioning scheme originated from MapleBBS.
To referring DreamBBS-specific versions, the letter D
can be appended to the M
part. In addition, DreamBBS versions before v4.0.0 can be collectively called MapleBBS 3D
.
For M
= 3
and certain cases of M
= 2
, the abbreviated form M.np.Q.R
is used, e.g., 3.00
(not 3.0.0
) and 3.02
(not 3.0.2
).
Before the introduction of the 2018 versioning scheme, the latest version name was 3.10 Rev.Beta 3
(inherited from WindTopBBS), i.e.:
-
M
=3
,N
=1
, &P
=0
. -
Q
was not actually used but can be viewed as3
.
Otherwise, Q
& R
are reserved for mapping version names in the 2018 versioning scheme before 4D.0.0
/v4.0.0
.
Note the presence of v
.
The versioning scheme introduced in 2018, now deprecated.
Each release using the 2018 versioning scheme has a corresponding legacy version number as well:
- For
M
≤3
,vM.N.P
corresponding to3D.xy.N.P
, where each possibleM
maps to a uniquexy
.
For DreamBBS v3, the form vM.n.P
is used, e.g., v3.0
(not v3.00
) and v3.2
(not v3.02
). The next major release after DreamBBS v3.3 will be DreamBBS v4.0, so that N
will not be larger than 9
.
It is acceptable to omit the v
prefix for DreamBBS because using M.N.P
along actually does not cause ambiguities:
- DreamBBS derived from MapleBBS not before MapleBBS 2.36, so before DreamBBS v3 (i.e.,
M
<3
),DreamBBS M.N
refers tovM.N
but notMD.N
- For the 2nd field, DreamBBS v3 allows only 1 digit while MapleBBS 3 allows only 2 digits, so
DreamBBS 3.nn
refers to3D.nn
but notv3.nn
, whileDreamBBS 3.n
refers tov3.n
but not3D.n
.
However, to avoid confusions, these 2 schemes can be explicitly differentiated by using MD.N.P
vs. vM.N.P
.
The version number M.N.P
will be consistent with the legacy versioning scheme for 4D.0.0
/v4.0.0
and on.
The development workflow introduced in 2018 had led to the two-branch series: RELEASE (formerly TESTING) and CURRENT, which are explained in the following paragraphs.
From v3.0 and on, no dedicated git branches for RELEASE will be created. Instead, new releases on RELEASE are published based on git tags from the master
branch.
The stages of the overall development workflow after v3.0, from the most unstable to the most stable:
-
<user-or-team>/develop
and PR branches- The developer(s)'s develop branch for self-review and peer-review
- For PR branches, draft PRs are in the self-review stage, while normal PRs are in the peer-review stage.
- Other names can be used in place of the
develop
at the developer(s)'s intention - At the self-review stage, force-updates can be performed at any time at the developer's intention
- If the commits themselves are checked to not have problems, the peer-review stage should start
- As soon as the peer-review passes, these commits should be merged onto
master
(fast-forwarding is preferred)
- The developer(s)'s develop branch for self-review and peer-review
-
master
- The branch for commits which passed peer-review
- Force-updates require acknowledge and agreement from all maintainers in advance
- Pull requests should target this branch
-
stable
- The git tag on
master
, updated when the functionality ofmaster
is reviewed by the maintainers
- The git tag on
- Releases
- The git tags added on
master
at times - The referenced commit should not be changed after the changelog is published
- The git tags added on
Before v3.0, RELEASE branches had emphasized more on the stability, the easiness to install, and the ability to deploy on different platform and containers than CURRENT.
These goals have now been transferred to the CURRENT tag stable
, which is the recommended version for other BBS sites to use.
Versioning Scheme: vM.N.P
, or just M.N.P
after 4.0.0
-
M
: Major version; indicates significant changes -
N
: Minor version; indicates introduction of new features -
P
: Patch version; indicates bug fixes or security improvement; based on the previous version -
CODENAME
can be omitted for simplicity- If
CODENAME
is assigned to a minor version, one ofN
andCODENAME
can be omitted
- If
- The present of
PRERELEASE
may indicate potential instability -
v0.N
refers to the series ofv0.N.P
versions - For
M
> 0,vM.0
refers to the series ofvM.N.P
versions
v0.95
/3.10 REV-BETA4
(3D.10.95
)
The 2018 versioning scheme is introduced in this minor version.
v0.95.0
/3.10 REV-BETA4.0
v0.95.1
/3.10 REV-BETA4.1
v0.95.2
/3.10 REV-BETA4.2
v0.95.3
/3.10 REV-BETA4.3
-
v0.95.4
/3.10 REV-BETA4.4
: Planned to be the last release ofv0.95
It has become end-of-life when v0.97.0
was released.
v0.96
(3D.10.96
)
The REV-BETA
part in the version name is no longer used.
Features:
- Sorted common library and refined structure.
- Sample files are moved to another repository.
- Other detailed changes from CURRENT.
It has become end-of-life when v0.97.1
was released.
v0.97-stratosphere
(3D.10.97
)
Features:
- Simple code test utilities.
- Refined layout: Trailing whitespaces are removed.
The plans have been dropped and no dedicated branches were created due to significant changes which require comprehensive tests.
Pre-releases for v1.0
were planned instead:
v1.N
: Tensure
series (3D.11.N
)
v1.0.0-rimuru
-
v1.1.0-milim
: Backports and improvement from CURRENT- Features:
- Screen resizing feature.
- Features:
-
v1.1.1
- Features:
-
pfterm
, which was ported in this release version.
-
- Features:
v1.2.0-shizu
v1.3.0-veldora
Unlike previous releases, dedicated branches are created per minor version for this major version.
-
v2.0
-
v2.0.0-artoria
- Features in plan:
- Option for disabling DSO.
- BBS-Lua/BBS-Ruby.
- SHA-256-encrypted password support.
- Preliminary WebSocket support, based on relevant patches to Maple3 and PttBBS.
- Features in plan:
-
-
v2.1
(never diverged from CURRENT)-
v2.1-gilgamesh-rc1
(pre-release only)- Features:
- Support building with CMake
- Features:
-
This major version is also named DreamBBS-202X vN
. 202X
refers to the 2020s decade.
This will be the last major version whose version number is different from the legacy version number.
Due to the shortage of development resources, from this major version and on, only the latest release version is officially maintained.
All the previous branches have become end-of-life when v3.0
was released.
-
v3.0
/202X v0-Azure
- Hot-swapping of DSO
- Force using 32-bit int type structure member in native 64-bit environment
- Full IPv6 support
- Auto screen resizing
- Server-side DBCS character detection
-
v3.0.1
/202X v0.1
- Improved high resolution login stat chart
-
v3.1
/3D-AO.21.1-VRMiliO
(Testing)- Remove logout option from the main menu
- This option is confirmed to be not necessary
- Remove logout option from the main menu
-
v3.2
-
v3.3
; planned to be the last release ofv3.X
Features in plan:
- Built-in Big5-UAO/UTF-8 conversion support.
- Data races prevention using atomic variables and
pthread
mutexes. - Replace System V shared memory API calls with POSIX shared memory API.
- Support using 64-bit
time_t
to make the BBS system to be immune to the 2038 problem.-
48 different structs need to be transformed
- Not feasible in short-term
-
48 different structs need to be transformed
- Refactor out boilerplate code in xover list system
- Merge popup menu systems into main menu system
- Merge main menu system into xover list system
This major version is also named MapleBBS 4D
by DreamBBS developers to reflect its goals.
Goals:
- Architecture
- Rust (allow C/C++ modules)
- Unicode + UTF-8 (with legacy contents unaffected)
- I18n & l10n
- 64-bit
libc::time_t
- Compile once, create sites anywhere
- The disappearance of reinvented wheels
- Existent de facto standard BBS API
- Data control logics which isolated from the UI
- BBS-Lua 4D, for script-ized layout logics and non-resource-intensive auxiliary functionalities
- Backward Compatibility
- Core functionality near-parity of both WindTopBBS and MapleBBS 3.10-itoc combined
- Automated upgrade of persistent data and site configuration from the fore-mentioned BBS systems
- UI
- Telnet-based TUI targeting XTerm + SSH connection
- Resembling elements from the original MapleBBS 3.10 with enhancements
- Ready for time-variant terminal size
Before v3.0, CURRENT had had new features or significant changes which were being tested.
CURRENT now consists of the master
branch and the tag stable
. The above goals have now been transferred to the branch master
.
Former versioning scheme: vM.0-CURRENT
- The corresponding CURRENT version for
vM.N
Version scheme after v3.0
:
- The name of the latest release version of its release series
- Or
M.N-CURRENT
for the CURRENT version of the upcoming release series - Will be renamed into the real version name upon the official release
Before v3.0, whenever a significant bug fix or change was made in CURRENT, the related commits would have been soon merged into the dedicated RELEASE branch for the latest release version.
From v3.0 and on, a new release will be published soon instead. For less significant fixes or changes, the tag stable
will be updated soon instead.
Sometimes, special editions are released on special events.
-
v4.20-alpha
(2020) (Based onv3.0-CURRENT
)- The main menu and the popup menu are movable
- Every items in the main menu have a verbose explanation
-
v4.20-beta
(2021) (Based onv3.0
/202X v0
)- The main menu and the Xover list have 2 cursors
- The main menu and the popup menu are movable again
-
v4.20-rc.0
(Based onv3.1-rc.1
/202X v1-rc.1
)- All the previous v4.20 features are back.
- The popup menu also has 2 cursors.
- Features from PttBBS to port and test:
- Compilation tests for data structure size
- pfterm (4-BSD)
- BBS-Lua (MIT)
- vtuikit (2-BSD)
- nios (2-BSD)
- logind (2-BSD)
- WSProxy (MIT)
- Note: (Maple3) visio = (Pirate/Ptt) term + screen/pfterm + io/(io + nios + vtkbd + vtuikit)
- Features from other Maple3 branches to port and test
- Screen resizing
- BBS-Ruby (MIT; Enhancing)
- Static Web Page Re-enabling
- Home
- Install — 安裝說明
- Version
- Project Documentations — 專案說明文件
- Coding Style & Conventions — 程式碼撰寫風格與慣例
- Indentation
- Xover List System — Xover 列表系統
- Menu Systems — 選單系統
- Screen Coordinate System — 畫面座標系統
- BoardReadingHistory — BRH 看板閱讀紀錄系統
- Visio I/O Library — Visio 輸出入函式庫
- Permission System — 權限系統
- TANet BBS Family Genealogy Chart — TANet BBS 家族譜系圖
- 與 MapleBBS 3 的按鍵差異
- [WIP] 與 MapleBBS 3 的差異
- References — 參考資料
- Changelog & TODO
- Issue & TODO list — 問題與代辦事項清單
- MapleBBS-itoc Porting Project — MapleBBS-itoc 移植計畫
- BBS-Lua Changelog
- BBS-Ruby Changelog (external link — 外部鏈結)
- 新式密碼加密 (DLBBS v2.0+)
- [WIP] DreamBBS v3 發佈說明 Release Note
- Release Notes of Version 2.0.0 Artoria
- Version 2.0.0 Artoria 發行說明
- Release Notes of Version 1.0.0 Rimuru
- Version 1.0.0 Rimuru 發行說明
- NoCeM-innbbsd 原始說明文件
- WindTop 3.02 原始說明文件