lsug / lsug-website Goto Github PK
View Code? Open in Web Editor NEWSource code of the London Scala User Group Website (yet to be hosted)
License: GNU General Public License v3.0
Source code of the London Scala User Group Website (yet to be hosted)
License: GNU General Public License v3.0
When the async callback for meetup is called, the tabs switch back to the default.
This shouldn't be happening because we're only updating part of the state.
The speaker profile corresponds to the details displayed for a speaker. It doesn't include a place for pronouns (the he/him in the following example).
We should make it easier for speakers to add a pronoun, and display it separately to the bio.
This involves touching both the frontend and backend.
The speaker profiles are stored in pollen markup. We'll need to add a new optional pronoun tag to this:
◊name{Travis Brown}
◊social{
◊twitter{travisbrown}
◊github{travisbrown}
}
◊pronoun{He/him}
◊bio{
◊p{Travis is a software developer who maintains some open source Scala libraries and lives in Berlin.}
}
and also a decoder for it.
On the frontend, we'll need to display this in the Speaker component. We don't have a set design for this. It might look better under the name, or next to it. Please experiment with positions and styles.
Please write tests for the decoder. These should verify that:
Unfortunately, we don't yet have frontend testing. Manual testing for the frontend is sufficient.
You'll need a basic grasp of functional programming to work with the decoder, and be willing to experiment with ScalaJS components.
Read our Contributor Guide to get set up.
Issue to remember to move.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no widespread editor support for this yet. If you're an Emacs user, you can have a go with pollen-mode.
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
pronoun
, photo
, twitter
, github
and blog
fields are optional.recognizedPronouns
list in the decoder if you can’t find it.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2021-02-27.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
.
You can optionally add tags
, slides
and material
for any other links. The first Open Source Saturday has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no editor support for this yet (I have an Emacs mode in the works!).
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2020-11-28.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
. This is geared towards talks as opposted to open source days, so there's unfortunately a bit of redundancy. All the events should use the same time of 14:00-17:30
.
You can optionally add tags
, slides
, setup
instructions, and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Pollen is a bit difficult to work with. We could improve it by:
It would also be great to improve the decoders to generate a specification for pollen tags.
The bug
The mill mill.scalalib.GenIdea.idea
task fails:
1 targets failed
mill.scalalib.GenIdea.idea java.nio.file.NoSuchFileException: /home/zainab/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.46.Final/netty-transport-native-epoll-4.1.46.Final-linux-x86_64.pom
sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
java.nio.file.Files.newByteChannel(Files.java:361)
java.nio.file.Files.newByteChannel(Files.java:407)
java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
java.nio.file.Files.newInputStream(Files.java:152)
os.Path.getInputStream(Path.scala:474)
os.read$bytes$.apply(ReadWriteOps.scala:258)
os.read$.apply(ReadWriteOps.scala:218)
os.read$.apply(ReadWriteOps.scala:216)
mill.scalalib.GenIdeaImpl.sbtLibraryNameFromPom$1(GenIdeaImpl.scala:300)
mill.scalalib.GenIdeaImpl.libraryNames$1(GenIdeaImpl.scala:313)
mill.scalalib.GenIdeaImpl.$anonfun$xmlFileLayout$86(GenIdeaImpl.scala:347)
scala.collection.StrictOptimizedIterableOps.flatMap(StrictOptimizedIterableOps.scala:117)
scala.collection.StrictOptimizedIterableOps.flatMap$(StrictOptimizedIterableOps.scala:104)
scala.collection.immutable.HashSet.flatMap(HashSet.scala:34)
mill.scalalib.GenIdeaImpl.xmlFileLayout(GenIdeaImpl.scala:347)
mill.scalalib.GenIdeaImpl.run(GenIdeaImpl.scala:36)
mill.scalalib.GenIdea$.$anonfun$idea$2(GenIdea.scala:14)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
To Reproduce
Run mill mill.scalalib.GenIdea.idea
in the root directory.
Version details
Additional information
This is likely due to the GenIdea.idea
task attempting to inspect netty's POM file:
In the mill GenIdea code, we see:
// Hack so that Intellij does not complain about unresolved magic
// imports in build.sc when in fact they are resolved
def sbtLibraryNameFromPom(pomPath : os.Path) : String = {
val pom = xmlParseDom(os.read(pomPath)).flatMap(Pom.project).right.get
The library netty-transport-native-epoll
doesn't have a POM on maven.
I'm as yet unsure why this is (are POM files necessary for libraries in maven?).
Quite possibly, the GenIdea.idea
task should skip the POM if it doesn't exist. If so, we should work to fix this in the mill codebase.
The number of attendees is displayed on each meetup page. For example:
This number is obtained by the server through a request to meetup.com. The server makes a request to meetup.com each time it receives a request for an upcoming meetup. Hence, it makes a request each time someone visits a page under https://www.lsug.co.uk/meetups/...
.
The number of attendees of meetup doesn't change much. If many people visit the same page at once, we'll make many redundant requests to meetup.com for the same unchanging information.
It would be far better to cache the number of people. We can store it in memory in the server for one minute, and only request it if the stored value is older than one minute.
A simple cache can probably be implemented with a cats-effect ref containing a Scala Map. This should be added to the lsug.Meetup
class.
You should at least test that:
You will need to mock meetup.com. This hasn't been done in the codebase yet, and you're free to experiment with mocking tools and patterns.
It would be useful if you've dabbled a little in functional programming.
Read our Contributor Guide to get set up.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no editor support for this yet (I have an Emacs mode in the works!).
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2020-11-28.
Edit the event
tag named "The Scala Language". It must have:
name
. I've been naming things "Contribute to XXX", but feel free to be more creative.time
of 14:00-17:30
description
You can optionally add tags
, slides
, setup
instructions, and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Our GitHub release workflow failed with an error in the setup-java
action.
The error is related to untarring with gzip. The archive ends unexpectedly (Unexpected EOF in archive
), so was possibly not downloaded correctly.
The build succeeded on retrying. If this is a rare occurrence, we can ignore it.
Run actions/setup-java@v1
/bin/tar --version
tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/temp_1625864822 -f /home/runner/work/_temp/77c04a09-e7b0-4572-b770-eaf232b96b97
gzip: stdin: unexpected end of file
/bin/tar: Unexpected EOF in archive
/bin/tar: Unexpected EOF in archive
/bin/tar: Error is not recoverable: exiting now
Error: The process '/bin/tar' failed with exit code 2
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no widespread editor support for this yet. If you're an Emacs user, you can have a go with pollen-mode.
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2021-01-28.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
.
You can optionally add tags
, slides
and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Each meetup page contains a time schedule. For example:
This is currently always in BST.
As our attendees are virtual, they can join from anywhere in the world and consequently any timezone. We should let users choose the timezone they want using a dropdown below the schedule. A rough design would look something like the following image, although the style should be consistent with the rest of the application:
Converting the time in the client's lsug.ui.meetup.plan
schedule component would be preferred.
We use scala-java-time to work with times. It has a companion library containing all timezones that could be used. This might bloat the ScalaJS bundle considerably, but would be worth trying. If that doesn't work well, we could look into creating a bundle of custom timezones only.
Sadly, we don't yet have any unit tests for client logic. Unless you're comfortable writing some from scratch, we're happy with manual testing.
You'll find this easier if you've explored HTML and CSS before.
Read our Contributor Guide to get set up.
The bug
The GitHub Action run failed with the following error:
==> X lsug.markup.ResourceSpec.meetups ./server/src/main/resources/meetups/2021-01-28.pm 0.115s munit.FailException: /home/runner/work/lsug-website/lsug-website/server/test/src/scala/lsug/markup/ResourceSpec.scala:39 assertion failed
38: val name = path.getFileName.baseName
39: f(server, name).map { ev => assert(clue(ev).isDefined) }
40: }
Clues {
ev: Option[Unit] = None
}
This test succeeds when running locally.
Some speakers have small inline code snippets in their abstracts. These are usually references to Scala classes.
For example, Jacob’s abstract references ExecutionContext
and cats.effect.Timer
.
We should support these through a code datatype that is converted into a html tag.
Potential Solution
This involves:
- Adding a new markup datatype for
Code
in the protocol
- Adding a decoder for this markup to the decoders. It should be similar to the strong decoder
- Rendering the code html tag on the frontend.
- Updating the meetup template with an example of how to use it.
Tests
Take a look at the tests for the strong decoder
Prerequisites
You should be reasonably familiar with html and basic Scala algebraic datatypes (case classes and sealed traits).
You will need to touch some fairly advanced functional patterns in the decoder, but you’ll be making very small changes.
What you'll learn
- How to work with monad transformers
- The basics of ScalaJS React
Getting started
Read our Contributor Guide to get set up.
The site displays text using the free fonts Adobe Source Serif Pro and Adobe Source Sans Pro.
These are not distributed with the site. If a user doesn't have them installed on their PC, we use their defaults instead. This causes styling issues.
We should bundle the fonts with the site assets such that all users see the correct fonts.
The mill build must be adjusted to include bundling fonts. A task should be added under the web module to download and unzip the fonts from their GitHub releases:
fonts.scss
file. This should be amended to use @fontface
to fetch the font.Manual testing is satisfactory.
This is a great introduction to mill, outside of standard Scala projects
Read our Contributor Guide to get set up.
Thank you very much for joining us @adamgfraser ! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no widespread editor support for this yet. If you're an Emacs user, you can have a go with pollen-mode.
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here. If possible, we'd like you to use an LSUG
label for tracking.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2021-01-30.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
.
You can optionally add tags
, slides
and material
for any other links. The first Open Source Saturday has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no editor support for this yet (I have an Emacs mode in the works!).
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2020-11-28.
Add a new event
tag to the events
section. It must have:
name
. I've been naming things "Contribute to XXX", but feeltime
of 14:00-17:30
This template is geared towards talks asdescription
You can optionally add tags
, slides
, setup
instructions, and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
Open Source days are very different to meetups for talks.
Thus far we’ve assumed that we only give talks, so don’t have a space for a title. We need a title to distinguish an OSS day from conventional talks.
The day also needs a brief explaination of how it works. We could repurpose the ‘welcome’ section for this, placing it at the top and getting rid of the host’s profile.
Our agenda should list break times and group times. We could use a generic agenda, without mentioning specific projects.
| 14:00 | local_cafe | Chat |
| 14:15 | local_cafe | Introduce the projects |
| 14:30 | build | Round 1 of coding |
| 15:45 | local_cafe | Break |
| 16:15 | build | Round 2 of coding |
| 17:15 | local_cafe | Closing discussion |
Where ‘build’ and ‘local_cafe’ are material icons corresponding to Blackboard Collaborate and Spatial Chat. Clicking on the icon should take the attendee to the corresponding virtual space.
The project list is currently too large to easily scroll through. We could experiment with:
All projects have a few things in common:
We could pull the issues list from GitHub, searching for the specific repository, and have an ’issues’ tab.
Some projects are manned by the same speaker. In this case, we don’t necessarily want to duplicate the speaker profile.
The server contains a decoder trait to decode our custom format into algebraic data types. This can be modelled as a typeclass with instances for each datatype.
We can then make use of several libraries to help construct and use the decoder. simulacrum
can be used to generate ops, and magnolia
for typeclass derivation.
Enrich lsug.markup.Decoder
trait with ops using simulacrum
. This makes working with decoders a little easier.
You can then write the functions required for magnolia to derive instances automatically.
The current decoders are explicit in lsug.markup.Decoders
. These can be made implicit and, where possible, rewritten to be derived automatically.
Note that most of the decoders probably won't be able to use generic derivation as they have custom handling for missing tags.
The assertions in lsug.markup.DecoderAssertions
should be rewritten to use an implicit decoder. The existing tests should cover the rewrite, but feel free to add more.
You should
Functor
.Read our Contributor Guide to get set up.
Thank you very much for joining us @larsrh! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no widespread editor support for this yet. If you're an Emacs user, you can have a go with pollen-mode.
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2021-01-30.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
.
You can optionally add tags
, slides
and material
for any other links. The first Open Source Saturday has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
The lsug markup uses an applicative parser. It has cats type class instances for functor and alternative.
While the parser is unit tested, the instances themselves could use law tests.
As we use munit for unit testing, we can add laws with discipline-munit
. This is described in the cats laws documentation.
The tests should be added in the lsug.markup.ParserSpec
. Provided there are no test failures, the parser shouldn't be changed.
You should be familiar with the some type classes, such as Functor. You should also understand the concept of unit testing.
Read our Contributor Guide to get set up.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no editor support for this yet (I have an Emacs mode in the works!).
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2020-11-28.
Add a new event
tag to the events
section. It must have:
name
. I've been naming things "Contribute to XXX", but feel free to be more creative.time
of 14:00-17:30
description
You can optionally add tags
, slides
, setup
instructions, and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
The GitHub Actions build fails following the updates made by scala steward.
This can be seen by the red x on the main GitHub branch, and the recent actions workflows:
warning package.json: No license field
$ /home/runner/work/lsug-website/lsug-website/out/ci/yarn/dest/node_modules/.bin/cdk synth
/bin/sh: 1: ./stack.sc: Permission denied
Subprocess exited with error 126
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
1 targets failed
ci.synth ammonite.ops.InteractiveShelloutException
ammonite.ops.Shellout$.executeInteractive(Shellout.scala:56)
ammonite.$file.webpack$Yarn.$anonfun$$percent$3(webpack.sc:24)
ammonite.$file.webpack$Yarn.$anonfun$$percent$3$adapted(webpack.sc:24)
ammonite.ops.Command.applyDynamic(Shellout.scala:118)
ammonite.$file.webpack$Yarn.$percent(webpack.sc:26)
ammonite.$file.build$ci$.$anonfun$synth$2(build.sc:230)
mill.define.ApplyerGenerated.$anonfun$zipMap$8(ApplicativeGenerated.scala:19)
mill.define.Task$MappedDest.evaluate(Task.scala:392)
The failure was introduced somewhere between the following commits (inclusive):
98d5cda | * 65 Update cats-core to 2.2.0
3a24d17 * Merge pull request #63 from scala-steward/update/scalafmt-core-2.4.2
I'm firing off the GitHub actions of each one to find the culprit.
Seems to be broken using the prod build.
The upcoming meetup page isn't friendly to different screen layouts, including mobile. Taking an example
The right sidebar is partly hidden on desktop:
The content width is much larger than the screen width on mobile:
It should be made mobile friendly.
The SASS stylesheets need to be adjusted to cater for responsive design. We already make use of CSS flexbox, grid and media queries, but there are probably fixed width styles interfering with them. The styles for the page can mostly be found in web/stylesheets/event.scss
.
Unfortunately, we don't expect to test for different screen sizes any time soon. Manual testing is satisfactory.
No experience is necessary. This issue probably won't involve any Scala — only CSS. You do need a mobile phone to test with.
Read our Contributor Guide to get set up.
Currently, we're only covering www.lsug.co.uk, but there's a redirect setup for www.lsug.org as well. Certbot supports this option.
Thank you very much for joining us @propensive ! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no widespread editor support for this yet. If you're an Emacs user, you can have a go with pollen-mode.
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here. If possible, we'd prefer it if you used an LSUG
label for tracking.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2021-01-30.
Add a new event
tag to the events
section (unless your event is already here). It must have a name
, a time
and a description
.
You can optionally add tags
, slides
and material
for any other links. The first Open Source Saturday has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
mill.scalalib.GenIdea/idea
fails with the following error when executing on a project that has netty-transport-native-epoll as a dependency.
1 targets failed
mill.scalalib.GenIdea.idea java.nio.file.NoSuchFileException: ~/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.46.Final/netty-transport-native-epoll-4.1.46.Final-linux-x86_64.pom
It's complaining about a missing pom file which has a linux-x86_64
suffix. Looking into the ~/.cache/coursier.../4.1.46.Final
directory, we can see the said pom file does not exists, whereas a pom file without the suffix exists.
~/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.46.Final:
netty-transport-native-epoll-4.1.46.Final-linux-x86_64.jar
netty-transport-native-epoll-4.1.46.Final-sources.jar
netty-transport-native-epoll-4.1.46.Final.pom
The issue seems to come from the logic in GenIdeaImpl looks for a POM extension with the same filename as the jar which does not cater for classifiers.
We think one solution to resolve this issue is to change the code to look for any file with a POM extension in the same directory as the jar.
More detailed information by @zainab-ali can be found here #90
Would you like us to PR this change? Also, thank you for working on and maintaining this build tool. Our project has benefited a lot from this project.
The contributor guide could be added to the website as a flow chart.
We could present the user (the new contributor) with questions about their setup e.g
What OS do you have?
- Windows
- MacOS
- Linux
and present instructions based on their answers.
We could also include screenshots more easily than on GitHub.
The homepage lists past events. These should be listed with the most recent event first, however they appear in any order.
The events are listed in the order they are returned by the server. You can tell this by using web developer tools to examine the json response returned by the server, and comparing it with the events listed.
The server should return events ordered by time. The logic for finding events is in the lsug.Server.eventsBefore
method. This returns a list which is not sorted.
Once you've completed this, take a look at the lsug.Server.meetupsAfter
method. This should be amended to list meetups with the soonest first.
You should unit test that all events returned by eventsBefore
are in order. Unit tests for the server have yet to be written, so please reach out to get these bootstrapped first.
This is a minor change. You'll need a basic grasp of Scala and a curiosity for functional programming.
java.time
Read our Contributor Guide to get set up.
Thank you very much for joining us! It would be great if you could fill in some details.
The pm
format is inspired by pollen markup syntax, a programmable xml-like format for semantic document publishing. I appreciate that there is no editor support for this yet (I have an Emacs mode in the works!).
You may have trouble typing the lozenge character ◊. If so, see pollen's instructions on inserting unicode.
photo
, twitter
, github
and blog
fields are optional.It would greatly help contributors if you could give a brief overview of the projects you'd like them to work on, and the main issues they face. If you have a specific label for good first issues (e.g. good-first-issue
), feel free to link it here.
Please also link a contributor's guide, if you have one prepared, and any setup instructions. We'll encourage attendees to do the setup beforehand.
The event details are in 2020-11-28.
Please edit the event
section named ScalaJS
. It must have:
name
. I've been naming things "Contribute to XXX", but feel free to be more creative.time
of 14:00-17:30
description
You can optionally add tags
, slides
, setup
instructions, and material
for any other links. The Coding with Cats workshop has an example of how these are displayed.
See the meetup template for details on how to structure each of these fields.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.