-
Notifications
You must be signed in to change notification settings - Fork 580
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
RFC: Establish SIG Go #407
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# RFC: Establish SIG Go | ||
|
||
| Status | **Proposed** | | ||
:-------------- |:------------------------------------------------------- | | ||
| **RFC #** | [407](https://github.com/tensorflow/community/pull/407) | | ||
| **Author(s)** | William Muir ([email protected]) | | ||
| **Sponsor** | Mihai Maruseac ([email protected]) | | ||
| **Updated** | 2022-01-05 | | ||
|
||
## Objective | ||
|
||
Establish SIG Go with the objectives of fostering and facilitating community | ||
collaboration around the TensorFlow Go bindings. Community collaboration is | ||
expected to result in improvements to the usability and maintenance of the | ||
bindings. | ||
|
||
## Context | ||
|
||
Go is a statically-typed, compiled programming language with wide use, | ||
especially in the development of API/RPC services, CLIs and web services and in | ||
data processing [[1](https://blog.golang.org/survey2020-result)]. Go bindings | ||
to the TensorFlow C API were first introduced in TensorFlow v0.11.0 and have | ||
since resided within the main TensorFlow repository, at | ||
[github.com/tensorflow/tensorflow/go](https://github.com/tensorflow/tensorflow/tree/r2.8/tensorflow/go). | ||
These bindings are | ||
[loosely integrated with the build system](https://github.com/tensorflow/tensorflow/pull/50934) | ||
and are presently listed as being both | ||
[unsupported by the community](https://www.tensorflow.org/versions) and | ||
[unsupported by the TensorFlow team](https://github.com/tensorflow/build/tree/master/golang_install_guide). | ||
|
||
Significant problems presently exist in the usability of TensorFlow's Go | ||
bindings. Changes to how Go manages dependencies, specifically in the | ||
implementation of [Go Modules](https://blog.golang.org/using-go-modules), have | ||
resulted in a set of installation challenges (see, for instance, GitHub issues | ||
[41808](https://github.com/tensorflow/tensorflow/issues/41808) and | ||
[43847](https://github.com/tensorflow/tensorflow/issues/43847)). To alleviate | ||
these issues, there has been discussion regarding relocation of the Go bindings | ||
to a dedicated repository | ||
([1](https://github.com/tensorflow/tensorflow/pull/44655#issuecomment-725040183), | ||
[2](https://github.com/tensorflow/tensorflow/pull/50934)). A component of this | ||
SIG proposal is a request for TensorFlow team support and collaboration in | ||
migrating the TensorFlow Go bindings to a dedicated GitHub repository. | ||
|
||
This request proposes that an opportunity exists to establish a effective SIG | ||
around the Go bindings. In the past, the TensorFlow developer community has | ||
made valuable contributions to the Go bindings, but community contributions | ||
have been sporadic. Implicit in this request is an acknowledgment that the | ||
current approach is unlikely to fully promote community collaboration due, for | ||
instance, to collocation of the bindings with TensorFlow core, methods for | ||
issue assignment/handling, the current state of the bindings in terms of | ||
usability, and the recent shift of the bindings into unsupported status. The | ||
expected outcome of establishing SIG Go is to increase community collaboration | ||
around the Go bindings, leading to the resolution of these issues and a pathway | ||
for long-term maintenance and development activities. | ||
|
||
## Goals & Objectives | ||
|
||
The SIG proposes a charter focused on conservative aims: engaging the | ||
community, solving current and future usability issues, performing on-going | ||
maintenance, and making incremental improvements to the existing codebase | ||
(e.g., functionality, testing, documentation). | ||
|
||
More specifically, SIG Go's initial focus will be on the following set of | ||
problems/objectives: | ||
|
||
* Fostering community involvement for the project and membership in SIG Go. | ||
* Migrating TensorFlow/Go source code from the main TensorFlow repository to | ||
a dedicated repository. | ||
* Restoring usability of the bindings, specifically achieving interoperability | ||
with Go tooling for module installation. | ||
* Improving unit testing and the coverage of tests. | ||
* Improving package documentation, including example code. | ||
* Assessing design and functionality of the package, identifying opportunities | ||
and developing a roadmap. | ||
|
||
## Membership | ||
|
||
Anyone involved in or using or contributing to the TensorFlow Go bindings will | ||
be welcome to join the group. To participate, prospective members will be asked | ||
to join SIG Go's mailing list, once established (e.g., at | ||
[[email protected]](mailto:[email protected])). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# SIG Go | ||
|
||
## Objective | ||
|
||
The purpose of this special interest group is to foster and facilitate | ||
community collaboration around the TensorFlow Go bindings. Community | ||
collaboration is expected to result in improvements to the usability and | ||
maintenance of the bindings. | ||
|
||
## Membership | ||
|
||
Anyone involved in or using or contributing to the TensorFlow Go bindings is | ||
welcome to join the group. To participate, please join the mailing list | ||
([[email protected]](mailto:[email protected])). | ||
|
||
Archives of the mailing list will be publicly available. | ||
|
||
## Resources | ||
|
||
* Mailing list [SIG Go](https://groups.google.com/a/tensorflow.org/forum/#!forum/sig-go) | ||
* GitHub repository [tensorflow/go](https://github.com/tensorflow/go) | ||
* Vanity import path [tensorflow.org/go](https://tensorflow.org/go) | ||
|
||
## Quarterly Meetings | ||
|
||
SIG Go will hold quarterly meetings via public Google Video Conference for | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. would it be enough especially during the stage of SIG formation? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. also any plans for gitter? other SIGs use gitter, but it kind of depends on community preferences There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Good point. Maybe meetings should be held monthly while the SIG is forming? Lacking some other definition, I'm thinking that this should encompass completion of all SIG launch plan items in the SIG Request along with resolution to initial problems 2 and 3 (migrating bindings to new repository, restoring interoperability with My hunch when drafting the charter was that, in the long-term, more frequent meetings (e.g., monthly) may be too much.
Sure, I can add. It seems that we could just deactivate the channel if it isn't used. Possibly this is referenced generally in the charter ("other third-party communication tools") as to avoid driving a future revision to the charter if preferences change. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's more of ideas than suggestions :) I guess you can also discuss these topics during the first calls with the SIG |
||
discussion related to the TensorFlow Go bindings. Additional meetings may be | ||
scheduled as needed or on a more frequent basis to facilitate SIG launch | ||
activites or to provide timely discussion on one or more topics of interest to | ||
the community. Meeting announcements will be made to the | ||
[[email protected]](mailto:[email protected]) mailing list and all subscribers | ||
will be invited. The primary topics for quarterly meetings will include: | ||
|
||
1. Discussion and review of significant decisions and changes. | ||
2. Roadmap discussions. | ||
3. Issues, bugs, and compatibility concerns. | ||
4. Community contributions and opportunities for community involvement. | ||
5. An update on the SIG's status and health, including a review and assessment | ||
of progress toward achieving group goals. | ||
|
||
## Contacts | ||
|
||
* Project leads: | ||
- | ||
- William Muir [@wamuir](https://github.com/wamuir) - wamuir at gmail | ||
* For administrative questions, contact tf-community-team at google | ||
|
||
## Code of Conduct | ||
|
||
As with all forums and spaces related to TensorFlow, SIG Go is subject to the | ||
[TensorFlow Code of Conduct](https://github.com/tensorflow/tensorflow/blob/master/CODE_OF_CONDUCT.md). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Request for SIG | ||
|
||
## What is this group for? | ||
|
||
The purpose of this special interest group is to foster and facilitate | ||
community collaboration around the TensorFlow Go bindings. Community | ||
collaboration is expected to result in improvements to the usability and | ||
maintenance of the bindings. | ||
|
||
Go is a statically-typed, compiled programming language with wide use, | ||
especially in the development of API/RPC services, CLIs and web services and in | ||
data processing [[1](https://blog.golang.org/survey2020-result)]. Go bindings | ||
to the TensorFlow C API were first introduced in TensorFlow v0.11.0 and have | ||
since resided within the main TensorFlow repository, at | ||
[github.com/tensorflow/tensorflow/go](https://github.com/tensorflow/tensorflow/tree/r2.8/tensorflow/go). | ||
These bindings are | ||
[loosely integrated with the build system](https://github.com/tensorflow/tensorflow/pull/50934) | ||
and are presently listed as being both | ||
[unsupported by the community](https://www.tensorflow.org/versions) and | ||
[unsupported by the TensorFlow team](https://github.com/tensorflow/build/tree/master/golang_install_guide). | ||
|
||
Significant problems presently exist in the usability of the Go bindings. | ||
Changes to how Go manages dependencies, specifically in the implementation of | ||
[Go Modules](https://blog.golang.org/using-go-modules), have resulted in a set | ||
of installation challenges (see, for instance, GitHub issues | ||
[41808](https://github.com/tensorflow/tensorflow/issues/41808) and | ||
[43847](https://github.com/tensorflow/tensorflow/issues/43847)). To alleviate | ||
these issues, there has been discussion regarding relocation of the Go bindings to | ||
a dedicated repository | ||
([1](https://github.com/tensorflow/tensorflow/pull/44655#issuecomment-725040183), | ||
[2](https://github.com/tensorflow/tensorflow/pull/50934)). | ||
A component of this SIG proposal is a request for TensorFlow team support and | ||
collaboration in migrating the TensorFlow Go bindings to a dedicated GitHub | ||
repository. | ||
|
||
This request proposes that an opportunity exists to establish a effective SIG | ||
around the Go bindings. In the past, the TensorFlow developer community has | ||
made valuable contributions to the Go bindings, but community contributions | ||
have been sporadic. Implicit in this request is an acknowledgment that the | ||
current approach is unlikely to fully promote community collaboration due, for | ||
instance, to collocation of the bindings with TensorFlow core, methods for | ||
issue assignment/handling, the current state of the bindings in terms of | ||
usability, and the recent shift of the bindings into unsupported status. The | ||
expected outcome of establishing SIG Go is to increase community collaboration | ||
around the Go bindings, leading to the resolution of these issues and a pathway | ||
for long-term maintenance and development activities. | ||
|
||
## Who will be part of it? | ||
|
||
* SIG Go leads: | ||
- | ||
- William Muir [@wamuir](https://github.com/wamuir) - wamuir at gmail | ||
* Anyone interested in discussing or contributing to the TensorFlow Go bindings is welcome. | ||
|
||
## What initial problems will the group tackle? | ||
|
||
The SIG proposes a charter focused on conservative aims: engaging the | ||
community, solving current and future usability issues, performing on-going | ||
maintenance, and making incremental improvements to the existing codebase | ||
(e.g., functionality, tests, examples, documentation). | ||
|
||
More specifically, the SIG's initial focus will be on the following set of | ||
problems/objectives: | ||
|
||
* Fostering community involvement for the project and membership in SIG Go. | ||
* Migrating TensorFlow/Go source code from the main TensorFlow repository to | ||
a dedicated repository. | ||
* Restoring usability of the bindings, specifically achieving interoperability | ||
with Go tooling for module installation. | ||
* Improving unit testing and the coverage of tests. | ||
* Improving package documentation, including example code. | ||
* Authoring and publishing tutorials and other instructional content. | ||
* Assessing design and functionality of the package, identifying opportunities | ||
and developing a roadmap. | ||
|
||
## What modes of communication do you intend to use? | ||
|
||
* A dedicated mailing list backed by Google Groups. | ||
* As needed, video conferencing on Google Hangouts. | ||
* Other communication platforms, consistent with community preferences. | ||
|
||
## Launch plan | ||
|
||
1. Identification of any additional group leads and/or initial members. | ||
2. Publication of the proposal and charter for community review and comments. | ||
3. Notification of SIG establishment via TensorFlow general mailing lists | ||
(discuss@, developers ML). | ||
4. Addition of SIG Go to the community pages on | ||
[tensorflow.org](https://tensorflow.org). | ||
5. Creation of a SIG mailing list and development of list discussions about | ||
initial work items. | ||
6. Establishment of [tensorflow.org/go](https://tensorflow.org/go), via | ||
[TensorFlow Documentation](https://github.com/tensorflow/docs) pages, for | ||
use as a [module import path](https://golang.org/ref/mod#vcs-find). | ||
7. Collaboration with the TensorFlow team on establishing a dedicated | ||
GitHub repository for the Go bindings and on migrating the bindings | ||
from the main TensorFlow repository. | ||
8. Creation of a blog post for the TensorFlow Medium.com blog community. | ||
|
||
# Charter | ||
|
||
Here's the link to the [group charter](CHARTER.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is also https://github.com/tensorflow/examples not sure if we should link from there or what is the best way to make things discoverable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking along the lines of testable examples here -- examples demonstrating use of the API. These are conveniently published alongside the package documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good points, these as tests, should definitely live with code. What about bigger examples more like tutorials or end-to-end examples?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should become a distinct/additional item on the list here (rfc) and corresponding Launch Plan within the SIG Request, imho. Good add. I'm not sure what the best location is.