Skip to content

Commit

Permalink
Readme updates (#516)
Browse files Browse the repository at this point in the history
* Add community section to readme file

* Add a contributing guide

* Add more info on starting convos around issues

* Update Slack invite link

* Add new line between header and body

Co-authored-by: Carl Hörberg <[email protected]>

* Take out build and performance test steps

Co-authored-by: Carl Hörberg <[email protected]>

* Add link to CloudAMQP support

Co-authored-by: Carl Hörberg <[email protected]>

* Add new line between header and body

Co-authored-by: Carl Hörberg <[email protected]>

* Replace link to github issues with discussions

* Add new lines between header and body in applicable places

---------

Co-authored-by: Carl Hörberg <[email protected]>
  • Loading branch information
nyior and carlhoerberg authored Jul 12, 2023
1 parent 4feeda0 commit 4f14291
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 20 deletions.
43 changes: 43 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
You are interested in contributing to LavinMQ, but you are not sure how to?
Right now, you can contribute to LavinMQ in one of two ways:

1. [Code contributions](#code-contributions)
2. [Non-code contributions](#non-code-contributions)

## Code contributions

The first step to making a code contribution, is starting a conversation around what you'd like to work on. You can start a conversation around an existing [issue](https://github.com/cloudamqp/lavinmq/issues) or a new one that you've created - refer to [reporting an issue](#report-an-issue). Next:

1. Fork, create feature branch
1. Submit pull request

### Develop

1. Run specs with `crystal spec`
1. Compile and run locally with `crystal run src/lavinmq.cr -- -D /tmp/amqp`
1. Pull js dependencies with `make js`
1. Build API docs with `make docs` (requires `npx`)
1. Build with `shards build`

### Release

1. Update `CHANGELOG.md`
1. Bump version in `shards.yml`
1. Create and push an annotated tag (`git tag -a v$(shards version)`), put the changelog of the version in the tagging message

## Non-Code contributions

Your schedule won't allow you make code contributions? Still fine, you can:

### [Report an issue](https://github.com/cloudamqp/lavinmq/issues/new)

- This could be an easily reproducible bug or even a feature request.
- If you spot an unexpected behaviour but you are not yet sure what the underlying bug is, the best place to post is [LavinMQ's community Slack](https://join.slack.com/t/lavinmq/shared_invite/zt-1v28sxova-wOyhOvDEKYVQMQpLePNUrg). This would allow us to interactively figure out what is going on.

### [Give us some feedback](https://github.com/cloudamqp/lavinmq/discussions)

We are also curious and happy to hear about your experience with LavinMQ. You can email us via [email protected] or reach us on Slack. Not sure what to write to us?

- You can write to us about your first impression of LavinMQ
- You can talk to us about features that are most important to you or your organization
- You can also just tell us what we can do better
28 changes: 8 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,25 +102,7 @@ In OS X the app, [`Instruments` that's bundled with Xcode can be used for tracin
Memory garbage collection can be diagnosed with [boehm-gc environment variables](https://github.com/ivmai/bdwgc/blob/master/docs/README.environment).

## Contributing

1. Fork, create feature branch
1. Build with `make -j`
1. Performance test with `bin/lavinmqperf throughput` and compare against `main`
1. Submit pull request

### Develop

1. Run specs with `crystal spec`
1. Compile and run locally with `crystal run src/lavinmq.cr -- -D /tmp/amqp`
1. Pull js dependencies with `make js`
1. Build API docs with `make docs` (requires `npx`)
1. Build with `shards build`

### Release

1. Update `CHANGELOG.md`
1. Bump version in `shards.yml`
1. Create and push an annotated tag (`git tag -a v$(shards version)`), put the changelog of the version in the tagging message
Kindly read our [contributing guide](CONTRIBUTING.md)

## LavinMQ with various plattforms
All AMQP client libraries work with LavinMQ and there are AMQP client libraries for almost every platform on the market. Here are guides for a couple of common plattforms.
Expand All @@ -147,7 +129,7 @@ and about 1000 bindings/second to durable queues.
## Implementation

LavinMQ is written in [Crystal](https://crystal-lang.org/), a modern
language built on the LLVM, that has a Ruby-like syntax, uses an event loop
language built on the LLVM, with a Ruby-like syntax. It uses an event loop
library for IO, is garbage collected, adopts a CSP-like [concurrency
model](https://crystal-lang.org/docs/guides/concurrency.html) and compiles down
to a single binary. You can liken it to Go, but with a nicer syntax.
Expand Down Expand Up @@ -206,6 +188,12 @@ When `Client#read_loop` receives a Basic.Consume frame it will create a `Consume
the queue's list of consumers. Each consumer has a `deliver_loop` fiber that will be notified
by an internal `Channel` when new messages are available in the queue.

## Getting help

For questions or suggestions:
- We are on [Slack](https://join.slack.com/t/lavinmq/shared_invite/zt-1v28sxova-wOyhOvDEKYVQMQpLePNUrg).
- You can also use the [lavinmq tag](https://stackoverflow.com/questions/tagged/lavinmq) on Stackoverflow
- If you use LavinMQ via [CloudAMQP](https://www.cloudamqp.com) then reach out to [[email protected]]
## Features

- AMQP 0-9-1 compatible
Expand Down

0 comments on commit 4f14291

Please sign in to comment.