Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Governance section #1504

Merged
merged 8 commits into from
Jun 2, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions _data/governance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
cards:
- title: "Scala Improvement Process"
description: "The SIP is the primary mechanism for evolving the Scala language."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be good to expand a little bit the description. What about the following?

This process aims to evolve Scala openly and collaboratively. Anyone from the community is welcome to submit a Scala Improvement Proposal (SIP), which is then reviewed and discussed by a Committee. Every month, the Committee votes on the proposals to accept in the language.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, but this will take many lines of text, is it ok to go in the expanded section?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I find the current description too short: it does not really provides anything in addition to the title. Is it a problem to make descriptions a bit longer?

Copy link
Member

@bishabosha bishabosha May 25, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the context of being the top of the community page, it adds a lot of vertical space, also the other boxes don't have a similar amount of text, so leading to empty space

expandText: "Process & People"
links:
- name: SIP Committee Members
url: https://docs.scala-lang.org/sips/process-specification.html#the-sip-committee
- name: SIP Process Specification
url: https://docs.scala-lang.org/sips/process-specification.html
- title: "Scala 3 Maintenance"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should cover both Scala 2 and Scala 3.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lrytz can you help us out here? In terms of the maintenance of Scala 2, what resources can we reference for the current process and people involved?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, those are pretty up to date. If you feel anything is missing, let me know.

description: "Managing the Scala 3 compiler, standard library and documentation."
expandText: "Process & People"
links:
- name: Core Maintainers
url: https://github.com/lampepfl/dotty/blob/main/MAINTENANCE.md#compiler
- name: Maintenance Procedures
url: https://github.com/lampepfl/dotty/blob/main/MAINTENANCE.md
Comment on lines +17 to +21
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here too, both links point to the same page. Also, that page dives deep into the issue supervisor role without giving an overview of all the organizations (I see at least LAMP and VirtusLab) involved in the maintenance of the compiler and their respective role.

Last, the description above mentions the standard library and the documentation, which are not covered by the links.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information should probably be added to the MAINTENANCE.md as a separate PR.

- title: "Tooling"
description: "Managing build tools, linters, IDEs, and other tools."
expandText: "Process & People"
links:
- text: "Process and People are TBD, please stay tuned! However you can read below about the Scala Tooling Summit:"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this section should be filled before we merge the PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current status on this is that we've only conducted one Tooling Summit during which no process was adopted. Changing this might be the goal for the next Summit in September.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if there is no “process”, I would expect the Governance section to give more understanding to the readers about which organizations do exist and actively work on the tooling ecosystem. I think we should mention at least VirtusLab with Scala CLI and Metals, and Jetbrains with IntelliJ.

- name: "Scala Tooling Summit of March 2023"
url: https://www.scala-lang.org/blog/2023/04/11/march-2023-scala-tooling-summit.html
- title: "Moderation"
description: "Learn about how is the Scala community moderated."
expandText: "Process & People"
links:
- name: "Moderation Team"
url: https://www.scala-lang.org/conduct/#contact
- name: Code of Conduct
url: https://www.scala-lang.org/conduct/
- name: "Inclusive Language Guide"
url: https://docs.scala-lang.org/contribute/inclusive-language-guide.html
- name: "Communication Channels"
url: https://docs.scala-lang.org/community/
- title: "Update Frequency"
description: "This page is updated every 6 months by the Scala Center."
dontExpand: true
links: []
65 changes: 62 additions & 3 deletions _includes/masthead-community.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,68 @@
<section class="governance">
<div class="wrap">
<div class="inner-box">
<div class="heading-box">
<h2 id="governance">Governance</h2>
</div>
<div class="community">
<div class="scala-items-list">
<div class="items-menu">
{% for scalaItem in site.data.governance.cards %}
{% assign loopIndexMod = forloop.index | minus: 1 | modulo: 3 %}

{% if loopIndexMod == 0 %}
{% assign codeSnippets = '' | split: ',' %}
<div class="wrap">
{% endif %}

<!-- Show the below content only if the scalaItem.expandable either doesn't exist or is false -->
{% unless scalaItem.dontExpand %}
{% capture box_content %}
<div class="wrap">
<ul class="vertical-buttons-list">
{% for link in scalaItem.links %}
{% if link.text %}
<li><p>{{ link.text }}</p></li>
{% else %}
<li><a href="{{ link.url }}" class="button button-expand" target="_blank" rel="none">{{ link.name }}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endcapture %}
{% assign codeSnippets = codeSnippets | push: box_content %}
{% endunless %}
<div class="scala-item scala-item__governance">
<div class="top">
<h4>{{scalaItem.title}}</h4>
<p>{{scalaItem.description}}</p>
</div>
{% unless scalaItem.dontExpand %}
<div class="button button-more">{{scalaItem.expandText}}</div>
{% endunless %}
</div>
{% if loopIndexMod == 2 or forloop.last %}
</div>
<div class="items-content">
{% for snippet in codeSnippets %}
<div class="items-code">{{snippet}}</div>
{% endfor %}
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</section>

<section class="table-of-content">
<div class="wrap">
<div class="inner-box">
<div class="community">
<div class="discourse">
<h3>Discourse</h3>
<h2>Discourse</h2>
<span>Forums</span>
<ul>
{% for forum in site.data.chats-forums.discourseForums %}
Expand All @@ -18,7 +77,7 @@ <h4><a href="{{forum.url}}">{{forum.title}}</a></h4>
</ul>
</div>
<div class="discord">
<h3>Discord</h3>
<h2>Discord</h2>
<span>Real-time chat</span>
<ul>
{% for server in site.data.chats-forums.discordServers %}
Expand All @@ -40,7 +99,7 @@ <h4>{{server.name}}</h4>
<div class="wrap">
<div class="inner-box">
<div class="heading-box">
<h3>Upcoming Events and Trainings</h3>
<h2>Upcoming Events and Trainings</h2>
</div>
<div class="events-items-list">
{% assign upcomingEvents = '' | split: ',' %}
Expand Down
2 changes: 1 addition & 1 deletion _layouts/frontpage.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ <h2><span>Scala in a Nutshell</span></h2>
<div class="scala-item">
<h3>{{scalaItem.shortTitle}}</h3>
<p>{{scalaItem.shortDescription}}</p>
<div class="button">More...</div>
<div class="button button-more">More...</div>
</div>
{% if loopIndexMod == 2 or forloop.last %}
</div>
Expand Down
80 changes: 80 additions & 0 deletions _sass/layout/governance.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// GOVERNANCE
//------------------------------------------------
//------------------------------------------------

.governance {
// background: $gray-nutshell;

.vertical-buttons-list {
@include display(flex);
@include flex-direction(column);
@include justify-content(space-between);
padding: 15px 0;
li {
margin-bottom: 10px;
}
// @include align-items(center);
// @include justify-content(flex-start);
}

.button-expand {
text-align: center;
display: block;
}

.button-more {
font-size: $font-size-small;
padding: 5px;
cursor: pointer;
}

.scala-items-list {
.items-menu {
.scala-item {
@include span-columns(4);
@include omega(3n);

@include display(flex);
@include flex-direction(column);
// @include align-items(center);
@include justify-content(space-between);
padding: 15px 10px;
text-align: center;
transition: $base-transition;
// border: 1px solid $gray-light;
margin-top: 15px;
@include bp(large) {
@include span-columns(12);
}

min-height: 150px;

h4 {
font-size: $font-size-h3;
color: #000;
text-transform: uppercase;
font-family: $base-font-family;
margin-bottom: 10px;
}

p {
font-size: $font-size-medium;
}

&.active {
background: $gray-light;
}
}

.items-content {
background: $gray-light;
transition: $base-transition;

.items-code {
display: none;
padding: 5px 0;
}
}
}
}
}
10 changes: 9 additions & 1 deletion _sass/layout/table-of-content.scss
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
padding-bottom: 0;
}
}
.governance {
margin-bottom: $padding-medium;

.inner-box {
padding-bottom: 0;
}
}
}

.documentation {
Expand Down Expand Up @@ -81,8 +88,9 @@
padding-bottom: $padding-small;
.discourse,
.discord {
h3 {
h2 {
margin-top: 0;
font-size: $font-size-title;
}
@include span-columns(6);

Expand Down
1 change: 1 addition & 0 deletions _sass/utils/_variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ $base-font-size: $em-base;
//------------------------------------------------
$font-size-carousel-arrow: 1.8rem;
$font-size-logo-btn: 1.4rem;
$font-size-title: 1.5rem; // 25px
$font-size-large: 1.063rem; // 17px
$font-size-medium: 0.9375rem; // 15px
$font-size-small: 0.875rem; // 14px
Expand Down
1 change: 1 addition & 0 deletions resources/css/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
@import 'layout/twitter-feed';
@import 'layout/ides';
@import 'layout/nutshell';
@import 'layout/governance';
@import 'layout/community-frontpage';
@import 'layout/courses';
@import 'layout/upcoming-events';
Expand Down
30 changes: 17 additions & 13 deletions resources/js/functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,24 @@ $(document).ready(function() {

items.each(function(index2, button) {
var jButton = $(button);
jButton.click(function(event) {
var activeCode = contents.eq(index2);
var others = allContents.not(activeCode);
allButtons.removeClass('active');
others.hide();

if (activeCode.is(":visible")) {
activeCode.hide();
} else {
jButton.addClass('active')
activeCode.show();
}
var expandButton = jButton.children('.button-more');
if (expandButton.length > 0) {
var target = jButton.is('.scala-item__governance') ? expandButton : jButton;
target.click(function(event) {
var activeCode = contents.eq(index2);
var others = allContents.not(activeCode);
allButtons.removeClass('active');
others.hide();

if (activeCode.is(":visible")) {
activeCode.hide();
} else {
jButton.addClass('active')
activeCode.show();
}

});
});
}
});
});
});
Expand Down