浏览代码

changelog and documentation updates for 1.1.0rc1

tags/v1.1.0-rc1
Shivaram Lingamneni 5 年前
父节点
当前提交
67f841e009
共有 3 个文件被更改,包括 129 次插入6 次删除
  1. 78
    0
      CHANGELOG.md
  2. 7
    5
      README.md
  3. 44
    1
      docs/MANUAL.md

+ 78
- 0
CHANGELOG.md 查看文件

@@ -3,6 +3,84 @@ All notable changes to Oragono will be documented in this file.
3 3
 
4 4
 This project adheres to [Semantic Versioning](http://semver.org/). For the purposes of versioning, we consider the "public API" to refer to the configuration files, CLI interface and database format.
5 5
 
6
+## [1.1.0-rc1] - 2019-06-03
7
+We have a number of exciting improvements in 1.1.0:
8
+
9
+Highlights include:
10
+
11
+* Support for attaching multiple clients to the same nickname
12
+* Support for running Oragono as a Tor hidden service
13
+* Support for IP cloaking
14
+* Simplified commands for registering new accounts with NickServ
15
+
16
+### Config changes
17
+* `tor-listeners` section added, for configuring listeners for use by Tor
18
+* `compatibility` section added for toggling compatibility behaviors for legacy clients
19
+* `ip-cloaking` section added for configuring cloaking
20
+* `bouncer` section added for configuring bouncer-like features (in particular, whether multiple clients can use the same nickname)
21
+* `check-ident` now has recommended value `false`
22
+* `nick-reservation.method` now has recommended value `strict`
23
+* `limits.linelen.tags` removed due to ratification of the [message-tags spec](https://ircv3.net/specs/extensions/message-tags.html), which fixes the maximum tags length at 8191 bytes
24
+* `registration-messages` added to limit the length of the registration sequence (i.e., handshake)
25
+
26
+### Security
27
+* Eliminated the possibility of using confusable Unicode characters to impersonate network services like NickServ (#519, thanks [@csmith](https://github.com/csmith)!)
28
+* Improved privacy properties of secret (mode `+s`) channels (#380, thanks [@csmith](https://github.com/csmith)!)
29
+* The `+R` (registered-only) mode now prevents unregistered clients from joining the channel, not just from speaking (#463, thanks [@bogdomania](https://github.com/bogdomania)!)
30
+* Limited the total length of the registration sequence (handshake) to mitigate potential DoS attacks (#505)
31
+
32
+### Fixed
33
+* Fixed `/ISON` command reporting users as always being online (#479)
34
+* Fixed clients who negotiated CAP version 302 or higher not receiving cap-notify messages (#464)
35
+* More consistent handling of channel privileges, in particular halfop (#400)
36
+* More consistent assignment of message IDs and timestamps to messages (#388, #477, #483)
37
+* Client-only tags are now stored for replay (#437)
38
+* Fixed various error numerics with incorrect parameters (#425, thanks [@Ascrod](https://github.com/Ascrod)!)
39
+* Fixed bugs in how the `RENAME` command worked with legacy clients (#300, thanks [@jesopo](https://github.com/jesopo)!)
40
+* Fixed a bug where clients could receive tags they hadn't enabled (#434)
41
+* History playback is batched when applicable (#456, thanks [@transitracer](https://github.com/oragono/oragono/issues/456)!)
42
+* Improved display of notices from NickServ etc. in some clients (#496, thanks [@jwheare](https://github.com/jwheare))
43
+* Fixed nickname timer warnings not displaying correctly under some circumstances (#449, thanks [@bogdomania](https://github.com/bogdomania)!)
44
+* Fixed confusing output from `/HISTORY` when history is disabled (#429, thanks [@bogdomania](https://github.com/bogdomania)!)
45
+* Fixed confusing output from `/HOSTSERV ON` when no vhost is available (#404, thanks [@bogdomania](https://github.com/bogdomania)!)
46
+* Fixed confusing snomask from `/SANICK` command (#360, thanks [@bogdomania](https://github.com/bogdomania)!)
47
+
48
+### Added
49
+* Support for attaching multiple clients to the same nickname (see the manual for details) (#403)
50
+* Support for running Oragono as a Tor hidden service (see the manual for details) (#369)
51
+* Support for IP cloaking (see the manual for details) (#108)
52
+* Support for `znc.in/playback`, which can automate history playback on rejoin for clients that support it (#486)
53
+* User preference system controlling various behaviors (`/msg NickServ help set` for details) (#466)
54
+* Support for the [draft/event-playback](https://github.com/DanielOaks/ircv3-specifications/blob/master+event-playback/extensions/batch/history.md) spec (#457)
55
+* TAGMSG and NICK are now replayable (#457)
56
+* Added the [SETNAME](https://github.com/ircv3/ircv3-specifications/pull/361) command for changing the user's realname (#372)
57
+
58
+### Changed
59
+* Registering an account with NickServ is now `/msg NickServ register <password>`, which registers the current nickname as an account, matching other service frameworks (#410)
60
+* Added a compatibility hack to make SASL work with ZNC 1.6.x (#261)
61
+* Support for the ratified [message-tags](https://ircv3.net/specs/extensions/message-tags.html) spec, replacing `draft/message-tags-0.2`
62
+* Support for the ratified [message IDs](https://ircv3.net/specs/extensions/message-ids.html) spec, replacing `draft/msgid`
63
+* Support for the upgraded [oragono.io/maxline-2](https://oragono.io/maxline-2) capability (#433)
64
+* Support for the [draft/resume-0.5](https://github.com/ircv3/ircv3-specifications/pull/306) capability and the associated `BRB` command, replacing `draft/resume-0.3`
65
+* Upgraded support for the `RENAME` command to the [latest draft of the specification](https://github.com/ircv3/ircv3-specifications/pull/308)
66
+* Upgraded support for the `ACC` command to the [latest draft of the specification](https://github.com/DanielOaks/ircv3-specifications/blob/register-and-verify/extensions/acc-core.md) (#453, #455)
67
+* History buffers and replay now include private messages you sent as well as received (#487)
68
+* Removed the `+a` away mode (#468, thanks [@jesopo](https://github.com/jesopo) and [@jwheare](https://github.com/jwheare)!)
69
+* Attempting to reauthenticate with SASL while already authenticated now returns an error
70
+* `autoreplay-on-join` no longer attempts to replay JOIN and PART lines by default (#474, thanks [@amyspark](https://github.com/amyspark)!)
71
+* snomasks are no longer sent for unregistered clients
72
+* `WHOIS` responses no longer include the `690 RPL_WHOISLANGUAGE` numeric (#516)
73
+* `ISON` responses are now sent for services (#488)
74
+* All times are now reported in UTC (#480)
75
+* `NICKSERV ENFORCE` is deprecated in favor of the new `NICKSERV SET ENFORCE` (the old syntax is still available as an alias)
76
+
77
+### Internal Notes
78
+* Improved build scripts (#409)
79
+* Official builds now use Go 1.12 (#406)
80
+* Minor improvements to the performance of the message building and parsing code (#387)
81
+* Added `oragono.io/nope` capability as a way of encouraging clients to request capabilities safely (#511)
82
+* Fixed latent portability issues with 32-bit architectures (#527)
83
+
6 84
 
7 85
 ## [1.0.0] - 2019-02-24
8 86
 We've finally made it to v1.0.0! With this release, our list of need-to-haves is rounded out, and we reckon the software's ready for production use in smaller networks. slingamn and I have been working with our contributors and translators to prepare a cracker of a release. Thanks to [@csmith](https://github.com/csmith) our [Docker builds](https://hub.docker.com/r/oragono/oragono/) have been updated, with automatic rebuilds as we develop the software. Thanks to [@bogdomania](https://github.com/bogdomania) our translation workflow has been improved a lot.

+ 7
- 5
README.md 查看文件

@@ -22,15 +22,17 @@ Oragono is a fork of the [Ergonomadic](https://github.com/edmund-huber/ergonomad
22 22
 * UTF-8 nick and channel names with rfc7613 (PRECIS)
23 23
 * [yaml](http://yaml.org/) configuration
24 24
 * native TLS/SSL support
25
-* server password (`PASS` command)
25
+* on-the-fly updating server config and TLS certificates (rehashing)
26
+* client accounts and SASL
27
+* supports [multiple languages](https://crowdin.com/project/oragono) (you can also set a default language for your network)
28
+* integrated services: NickServ for nickname reservation, ChanServ for channel registration, and HostServ for vhosts
29
+* experimental support for bouncer-like features (storing and replaying history, allowing multiple clients to use the same nickname)
30
+* advanced security and privacy features (support for requiring SASL for all logins, cloaking IPs, or running as a Tor hidden service)
26 31
 * an extensible privilege system for IRC operators
27 32
 * ident lookups for usernames
28 33
 * automated client connection limits
29
-* on-the-fly updating server config and TLS certificates (rehashing)
30
-* client accounts and SASL
31
-* passwords stored with [bcrypt](https://godoc.org/golang.org/x/crypto) (client account passwords also salted)
34
+* passwords stored with [bcrypt](https://godoc.org/golang.org/x/crypto)
32 35
 * banning ips/nets and masks with `KLINE` and `DLINE`
33
-* supports [multiple languages](https://crowdin.com/project/oragono) (you can also set a default language for your network)
34 36
 * [IRCv3 support](http://ircv3.net/software/servers.html)
35 37
 * a heavy focus on developing with [specifications](https://oragono.io/specs.html)
36 38
 

+ 44
- 1
docs/MANUAL.md 查看文件

@@ -18,6 +18,7 @@ _Copyright © 2018 Daniel Oaks <daniel@danieloaks.net>_
18 18
 
19 19
 - Introduction
20 20
     - Project Basics
21
+    - Scalability
21 22
 - Installing
22 23
     - Windows
23 24
     - macOS / Linux / Raspberry Pi
@@ -26,6 +27,8 @@ _Copyright © 2018 Daniel Oaks <daniel@danieloaks.net>_
26 27
         - Nickname reservation
27 28
     - Channel Registration
28 29
     - Language
30
+    - Bouncer
31
+    - History
29 32
     - IP cloaking
30 33
 - Frequently Asked Questions
31 34
 - Modes
@@ -53,7 +56,7 @@ If you have any suggestions, issues or questions, feel free to submit an issue o
53 56
 
54 57
 Let's go over some basics, for those new to Oragono. My name's Daniel, and I started the project (it was forked off a server called [Ergonomadic](https://github.com/edmund-huber/ergonomadic) that'd been around for a number of years). In addition to Oragono, I also do a lot of IRC specification work with the [various](https://modern.ircdocs.horse) [ircdocs](https://defs.ircdocs.horse) [projects](https://ircdocs.horse/specs/) and with the [IRCv3 Working Group](https://ircv3.net/).
55 58
 
56
-Oragono's a new IRC server, written from scratch. My main goals when starting the project was to write a server that:
59
+My main goals when starting the project were to write a server that:
57 60
 
58 61
 - Is fully-functional.
59 62
 - I can use to very easily prototype new [IRCv3](https://ircv3.net/) proposals and features.
@@ -68,6 +71,17 @@ Some of the features that sets Oragono apart from other servers are:
68 71
 - Integrated user account and channel registration system (no services required!).
69 72
 - Native Unicode support (including appropriate casemapping).
70 73
 - Support for [multiple languages](https://crowdin.com/project/oragono).
74
+- Bouncer-like features, including allowing multiple clients to use the same nickname
75
+
76
+Oragono has multiple "production" deployments (that is to say, communities using it as a day-to-day chat server) and is fairly mature --- we encourage you to consider it for your community!
77
+
78
+## Scalability
79
+
80
+We believe Oragono should scale comfortably to 10,000 clients and 2,000 clients per channel, making it suitable for small to medium-sized teams and communities. Oragono does not currently support server-to-server linking (federation), meaning that all clients must connect to the same instance. However, since Oragono is implemented in Go, it is reasonably effective at distributing work across multiple cores on a single server; in other words, it should "scale up" rather than "scaling out".
81
+
82
+In the relatively near term, work is planned to make Oragono [highly available](https://github.com/oragono/oragono/issues/343), and in the long term, we hope to support [federation](https://github.com/oragono/oragono/issues/26) as well.
83
+
84
+If you're interested in deploying Oragono at scale, or want performance tuning advice, come find us via the abovementioned support channels: we're very interested in what our software can do!
71 85
 
72 86
 
73 87
 --------------------------------------------------------------------------------------------
@@ -243,6 +257,28 @@ The above will change the server language to Romanian, with a fallback to Chines
243 257
 Our language and translation functionality is very early, so feel free to let us know if there are any troubles with it! If you know another language and you'd like to contribute, we've got a CrowdIn project here: [https://crowdin.com/project/oragono](https://crowdin.com/project/oragono)
244 258
 
245 259
 
260
+## Bouncer
261
+
262
+Traditionally, every separate client connection to IRC has a separate identity and must use a separate nickname. Middleware programs called [bouncers](https://en.wikipedia.org/wiki/BNC_%28software%29#IRC) are used to work around this, by multiplexing a single connection to an underlying server across multiple clients. With Oragono, if the server is configured to allow it, a new client connection can share a nickname with an old one directly, without needing a bouncer. To use this feature, both connections must authenticate with SASL to the same user account and then request the same nickname during the initial handshake ("registration") --- once you have already logged into the server, you cannot subsequently change to a shared nickname.
263
+
264
+To enable this functionality as a server administrator, set `accounts.bouncer.enabled` to `true`. You may also want to set `accounts.bouncer.allowed-by-default` to `true`, which makes the behavior opt-out for end users instead of opt-in. End users can opt in or out using `NS SET BOUNCER`.
265
+
266
+We are working on a number of initiatives to improve client support for this behavior, in particular [automated history replay](https://github.com/ircv3/ircv3-specifications/pull/349).
267
+
268
+
269
+## History
270
+
271
+Oragono can store a limited amount of message history in memory and replay it, which is useful for covering brief disconnections from IRC. You can access this history using the `/HISTORY` command (depending on your client, you may need to use `/QUOTE history` instead), for example `/history #mychannel 100` to get the 100 latest messages.
272
+
273
+Server administrators can configure `history.autoreplay-on-join` to automatically send clients a fixed number of history lines when they join a channel. Users can use `/msg NickServ set autoreplay-lines` to opt in or out of this behavior.
274
+
275
+We are working on a number of improvements to this functionality:
276
+
277
+* We currently emulate the ZNC playback module for clients that have special ZNC support (see the "ZNC" section below)
278
+* [CHATHISTORY](https://github.com/ircv3/ircv3-specifications/pull/349) will be a standardized way for clients to request history lines
279
+* [RESUME](https://github.com/ircv3/ircv3-specifications/pull/306), which we support in draft form, automatically replays history lines to clients who return after a brief disconnection
280
+
281
+
246 282
 ## IP cloaking
247 283
 
248 284
 Unlike many other chat and web platforms, IRC traditionally exposes the user's IP and hostname information to other users. This is in part because channel owners and operators (who have privileges over a single channel, but not over the server as a whole) need to be able to ban spammers and abusers from their channels, including via hostnames in cases where the abuser tries to evade the ban.
@@ -648,6 +684,13 @@ Instructions on how client software should connect to an .onion address are outs
648 684
 1. Pidgin should work with [torsocks](https://trac.torproject.org/projects/tor/wiki/doc/torsocks).
649 685
 
650 686
 
687
+## ZNC
688
+
689
+ZNC 1.6.x has a [bug](https://github.com/znc/znc/issues/1212) where it fails to recognize certain SASL messages. Oragono 1.1.0 and later support a compatibility mode that enables ZNC to complete the SASL handshake: this can be enabled with `server.compatibility.send-unprefixed-sasl`.
690
+
691
+Oragono can emulate certain capabilities of the ZNC bouncer for the benefit of clients, in particular the third-party [playback](https://wiki.znc.in/Playback) module. This enables clients with specific support for ZNC to receive selective history playback automatically. To configure this in [Textual](https://www.codeux.com/textual/), go to "Server properties", select "Vendor specific", uncheck "Do not automatically join channels on connect", and check "Only play back messages you missed". Other clients with support are listed on ZNC's wiki page.
692
+
693
+
651 694
 --------------------------------------------------------------------------------------------
652 695
 
653 696
 

正在加载...
取消
保存