/sprees

Scala Open Source Sprees: join us and learn how to contribute to open source!

Open Source Spree

The Scala Center is organizing an Open Source Spree during Lambda World, on Thursday, October 26th!

Time October 26th, 15:00 - 19:00
Location Palacio de Congresos, Cádiz
Conference registration Required
Event Registration Part of conference registration
Food Conference lunch is before the event

The focus of Scala Sprees is to introduce newcomers and veterans alike to open source! Come meet contributors of well-known open source Scala projects and learn how you can make your own contribution.

Your challenge? Get one pull request merged into one of the projects, and get this awesome t-shirt:

![](https://pbs.twimg.com/media/CtnCrtvWAAAO0nE.jpg:small)

Join the chat at https://gitter.im/scalacenter/sprees

Projects

Here is a list of projects that you could contribute to during the spree:

Project Contact
freestyle - A cohesive & pragmatic framework of FP centric Scala libraries @raulraja
magnolia, contextual, totalitarian and “others” - nicely named libraries @propensive
literator - generate markdown docs from sources @laughedelic
sbt-github-release - publish release notes on Github @laughedelic
sbt-notifications - native OS notifications from sbt @laughedelic
sbt-publish-more - publish to several repositories @laughedelic
zinc - Scala incremental compiler @jvican & @Duhemm
sbt - Scala build tool @jvican & @Duhemm
scala-native @Duhemm
scala-lang.org @jvican
docs.scala-lang.org @jvican
sbt-release-early @jvican
sbt-bintray @jvican
sbt-pgp @jvican
sbt-crossproject @jvican
add your project here!

Special Collaboration with 47 Degrees

Here below a list of Freestyle projects that you might want to contribute during the spree:

Project Contact
freestyle - A cohesive & pragmatic framework of FP centric Scala libraries @raulraja & @fedefernandez & @juanpedromoreno
iota - Fast [co]product types with a clean syntax. For Cats & Scalaz. @raulraja & @fedefernandez & @juanpedromoreno
freestyle-cassandra - Freestyle Cassandra @raulraja & @fedefernandez & @juanpedromoreno
freestyle-rpc - Freestyle RPC @raulraja & @fedefernandez & @juanpedromoreno
sbt-freestyle-protogen - Sbt plugin to generate .proto files from freestyle-rpc service definitions @raulraja & @fedefernandez & @juanpedromoreno

Who will be leading the Scala Open Source Spree?

Want to add your project to the list? Jump to the next section!

Duration, pace steps

At the beginning, maintainers gather together in front of all the contributors to briefly explain their projects and tickets in one minute. The idea is to give a good high-level explanation to motivate participants without going into too much detail. A link to this page is provided.

When they are done, participants approach the projects they are most interested in and get it contact with the maintainers. At this point, maintainers usually listen to the participants' experience and provide personal guidance on tickets that would suit them.

Then, the fun begins! Participants start hacking on their projects and maintainers review PRs as they come, assisting participants when they ask for help. We encourage maintainers to merge as many PRs as possible in the place, for two reasons:

  1. Participants get a small token of appreciation from the Scala Center.
  2. It increases the motivation of the participants.

If participants get the first PR merged, they are invited to continue solving issues until they are happy with their work!

At the middle of the spree, the Scala Center and sponsors of the event provide maintainers and participants alike with some refreshment (drinks, sandwiches, pizza, etc).

Participants can leave the event at any time they want. When the time approaches the end, everyone starts to wrap up: participants finish their PRs while maintainers finish their review, and organizers of the spree give away Scala t-shirts. We finish by thanking your hard work for open-source.

How to propose a project

A Scala Center spree is the perfect event to gauge interest in your open-source projects. You not only have the opportunity to get new contributors involved in your project, but you can win friends and lifetime maintainers that help you make a difference in the open-source world.

There is only one requirement to submit a project -- you need to be present for the duration of the Scala Center spree. Your physical presence is important to assist and motivate contributors.

If you are a maintainer of an open-source Scala project, make a PR to add your project to the list!

What you need to do

Create a PR with the following information:

  • Project information.
  • Your contact details.
  • A link to a "spree" or "hackathon" label with curated tickets for the participants. See this project for inspiration.

It's important that the curated tickets are entry-level, typical issues that you would solve in 15-20 minutes of your time as an experienced maintainer. In our experience, newcomers will take 1 to 2 hours to address them, assuming they are unfamiliar with the codebase and this is their first contribution.

How to be an effective maintainer

Maintainers can make a difference by tweaking some knobs:

  • Provide a CONTRIBUTING guide. Contributing guides explain to newcomers the usual workflow to get started and what's expected from them. Good guides: scala/scala, sbt/zinc, scalameta/scalameta, scalacenter/scalafix.
  • Provide a motivating README with clear instructions. Make sure docs are up to date.
  • Link to documentation when possible, or show contributors how to search for docs. You can label as docs any issue or PR with relevant discussions to get acquainted with implementation details and design decisions.
  • Be nice to newcomers, they will always remember it!

How to write good tickets

Curating tickets is not easy. If you want to optimize for the highest number of contributors, we recommend you to:

  • Give hints on potential solutions. Say which solutions are not on the table, if any.
  • Describe the purpose of the ticket and its context. Having a clear idea of why your ticket is relevant will motivate participants.
  • Add links to source code sparingly. Show the entry-points for the requested functionality / fix, give a basic explanation of the code structure.
  • Be concise and detail specifics of your project or its implementation. Providing this kind of domain knowledge to participants will help them finish off their tickets sooner, and move to the next one!