settingsLogin | Registersettings

[openstack-dev] [tc] supporting Go

0 votes

TC,

In reference to http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html and Thierry's reply, I'm currently drafting a TC resolution to update http://governance.openstack.org/resolutions/20150901-programming-languages.html to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the document I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

asked May 3, 2016 in openstack-dev by John_Dickinson (10,400 points)   2 4 8
retagged Jan 25, 2017 by admin

120 Responses

0 votes

John,

How would Oslo like functionality be included ? Would the aim be to produce equivalent libraries ?

Tim

On 03/05/16 17:58, "John Dickinson" me@not.mn wrote:

TC,

In reference to http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html and Thierry's reply, I'm currently drafting a TC resolution to update http://governance.openstack.org/resolutions/20150901-programming-languages.html to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the document I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Tim_Bell (16,440 points)   1 6 10
0 votes

I like Go! However, Go does not offer binary compatibility between point
releases. For those who install from source it may not be a big issue, but
for commercial distributions that pre-package & pre-compile everything,
then the compiled Go libs won't be compatible with old/new releases of the
Go compiler that the user may want to install on their systems.

Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html

On Tue, May 3, 2016 at 11:58 AM, John Dickinson me@not.mn wrote:

TC,

In reference to
http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html
and Thierry's reply, I'm currently drafting a TC resolution to update
http://governance.openstack.org/resolutions/20150901-programming-languages.html
to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the document
I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Rayson_Ho (520 points)   1 1
0 votes

That's a good question, and I'll be sure to address it. Thanks.

In the context of "golang code in swift", any discussion around a "goslo" library would be up to the oslo team, I think. The proposed functionality that would be in golang in swift does not currently depend on any oslo library. In general, if the TC supports Go, I'd think it wouldn't be any different than the question of "where's the oslo libraries for javascript [which is already an approved language]?"

--John

On 3 May 2016, at 9:14, Tim Bell wrote:

John,

How would Oslo like functionality be included ? Would the aim be to produce equivalent libraries ?

Tim

On 03/05/16 17:58, "John Dickinson" me@not.mn wrote:

TC,

In reference to http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html and Thierry's reply, I'm currently drafting a TC resolution to update http://governance.openstack.org/resolutions/20150901-programming-languages.html to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the document I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

responded May 3, 2016 by John_Dickinson (10,400 points)   2 4 8
0 votes

That's an interesting point. I'm not very familiar with Golang itself yet, and I haven't yet had to manage any Golang projects in prod. These sorts of questions are great!

If a distro is distributing pre-compiled binaries, isn't the compatibility issue up to the distros? OpenStack is not distributing binaries (or even distro packages!), so while it's an important question, how does it affect the question of golang being an ok language in which to write openstack source code?

--John

On 3 May 2016, at 9:16, Rayson Ho wrote:

I like Go! However, Go does not offer binary compatibility between point
releases. For those who install from source it may not be a big issue, but
for commercial distributions that pre-package & pre-compile everything,
then the compiled Go libs won't be compatible with old/new releases of the
Go compiler that the user may want to install on their systems.

Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html

On Tue, May 3, 2016 at 11:58 AM, John Dickinson me@not.mn wrote:

TC,

In reference to
http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html
and Thierry's reply, I'm currently drafting a TC resolution to update
http://governance.openstack.org/resolutions/20150901-programming-languages.html
to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the document
I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

responded May 3, 2016 by John_Dickinson (10,400 points)   2 4 8
0 votes

On Tue, May 3, 2016 at 12:24 PM, John Dickinson me@not.mn wrote:

That's an interesting point. I'm not very familiar with Golang itself yet,
and I haven't yet had to manage any Golang projects in prod. These sorts of
questions are great!

See: https://golang.org/doc/go1compat

If a distro is distributing pre-compiled binaries, isn't the compatibility
issue up to the distros? OpenStack is not distributing binaries (or even
distro packages!), so while it's an important question, how does it affect
the question of golang being an ok language in which to write openstack
source code?

I mean a commercial OpenStack distro...

OpenStack does not distribute binaries today (because Python is an
interpreted language), but Go is a compiled language. So may be I should
simplify my question -- in what form should a commercial OpenStack distro
distribute OpenStack components written in Go?

Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html

--John

On 3 May 2016, at 9:16, Rayson Ho wrote:

I like Go! However, Go does not offer binary compatibility between point
releases. For those who install from source it may not be a big issue,
but
for commercial distributions that pre-package & pre-compile everything,
then the compiled Go libs won't be compatible with old/new releases of
the
Go compiler that the user may want to install on their systems.

Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html

On Tue, May 3, 2016 at 11:58 AM, John Dickinson me@not.mn wrote:

TC,

In reference to
http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html
and Thierry's reply, I'm currently drafting a TC resolution to update

http://governance.openstack.org/resolutions/20150901-programming-languages.html

to include Go as a supported language in OpenStack projects.

As a starting point, what would you like to see addressed in the
document
I'm drafting?

--John


OpenStack Development Mailing List (not for usage questions)
Unsubscribe:
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe:
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Rayson_Ho (520 points)   1 1
0 votes

On Tue, May 3, 2016 at 9:03 AM John Dickinson me@not.mn wrote:

As a starting point, what would you like to see addressed in the document
I'm drafting?

I'm going through this project with JavaScript right now. Here's some of
the things I've had to address:

  • Common language formatting rules (ensure that a pep8-like thing exists).
  • Mirroring dependencies?
  • Building Documentation
  • Common tool choices for testing, coverage, etc.

Michael


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Michael_Krotscheck (4,420 points)   3 3
0 votes

On 05/03/2016 01:45 PM, Michael Krotscheck wrote:
On Tue, May 3, 2016 at 9:03 AM John Dickinson <me@not.mn
me@not.mn> wrote:

As a starting point, what would you like to see addressed in the
document I'm drafting?

I'm going through this project with JavaScript right now. Here's some of
the things I've had to address:

  • Common language formatting rules (ensure that a pep8-like thing exists).
  • Mirroring dependencies?
  • Building Documentation

Mirroring and building are the ones that we'll definitely want to work
together on in terms of figuring out how to support. go get being able
to point at any git repo for depends is neat - but it increases the
amount of internet surface-area in the gate. Last time I looked (last
year) there were options for doing just the fetch part of go get
separate from the build part.

In any case, as much info as you can get about the mechanics of
downloading dependencies, especially as it relates to pre-caching or
pointing build systems at local mirrors of things holistically rather
than by modifying the source code would be useful. We've gone through a
couple of design iterations on javascript support as we've dived in further.

  • Common tool choices for testing, coverage, etc.

Michael


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Monty_Taylor (22,780 points)   2 5 7
0 votes

On Tue, 3 May 2016 12:16:24 -0400
Rayson Ho raysonlogin@gmail.com wrote:

I like Go! However, Go does not offer binary compatibility between point
releases. For those who install from source it may not be a big issue, but
for commercial distributions that pre-package & pre-compile everything,
then the compiled Go libs won't be compatible with old/new releases of the
Go compiler that the user may want to install on their systems.

IMHO, it's not yet a problem worth worrying about. The C++ have demonstrated
poor binary compatibility over releases, even 25 years after its creation.
And it's not a big concern. Annoying, yes, but not a deal-breaker. In case
of Fedora, we'll ship with a nailed Golang version in each release.

-- Pete


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Pete_Zaitcev (1,540 points)   1 4
0 votes

On 3 May 2016, at 12:19, Monty Taylor wrote:

On 05/03/2016 01:45 PM, Michael Krotscheck wrote:

On Tue, May 3, 2016 at 9:03 AM John Dickinson <me@not.mn
me@not.mn> wrote:

As a starting point, what would you like to see addressed in the
document I'm drafting?

I'm going through this project with JavaScript right now. Here's some of
the things I've had to address:

  • Common language formatting rules (ensure that a pep8-like thing exists).
  • Mirroring dependencies?
  • Building Documentation

Mirroring and building are the ones that we'll definitely want to work together on in terms of figuring out how to support. go get being able to point at any git repo for depends is neat - but it increases the amount of internet surface-area in the gate. Last time I looked (last year) there were options for doing just the fetch part of go get separate from the build part.

In any case, as much info as you can get about the mechanics of downloading dependencies, especially as it relates to pre-caching or pointing build systems at local mirrors of things holistically rather than by modifying the source code would be useful. We've gone through a couple of design iterations on javascript support as we've dived in further.

Are these the sort of things that need to be in a resolution saying that it's ok to write code in Golang? I'll definitely agree that these questions are important, and I don't have the answers yet (although I expect we will by the time any Golang code lands in Swift). We've already got the Consistent Testing Interface doc[1] which talks about having tests, a coding style, and docs (amongst other things). Does a resolution about Golang being acceptable need to describe dependency management, build tooling, and CI?

--John

[1] http://governance.openstack.org/reference/project-testing-interface.html__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


responded May 3, 2016 by John_Dickinson (10,400 points)   2 4 8
0 votes

Excerpts from John Dickinson's message of 2016-05-03 13:01:28 -0700:

On 3 May 2016, at 12:19, Monty Taylor wrote:

On 05/03/2016 01:45 PM, Michael Krotscheck wrote:

On Tue, May 3, 2016 at 9:03 AM John Dickinson <me@not.mn
me@not.mn> wrote:

As a starting point, what would you like to see addressed in the
document I'm drafting?

I'm going through this project with JavaScript right now. Here's some of
the things I've had to address:

  • Common language formatting rules (ensure that a pep8-like thing exists).
  • Mirroring dependencies?
  • Building Documentation

Mirroring and building are the ones that we'll definitely want to work together on in terms of figuring out how to support. go get being able to point at any git repo for depends is neat - but it increases the amount of internet surface-area in the gate. Last time I looked (last year) there were options for doing just the fetch part of go get separate from the build part.

In any case, as much info as you can get about the mechanics of downloading dependencies, especially as it relates to pre-caching or pointing build systems at local mirrors of things holistically rather than by modifying the source code would be useful. We've gone through a couple of design iterations on javascript support as we've dived in further.

Are these the sort of things that need to be in a resolution saying that it's ok to write code in Golang? I'll definitely agree that these questions are important, and I don't have the answers yet (although I expect we will by the time any Golang code lands in Swift). We've already got the Consistent Testing Interface doc[1] which talks about having tests, a coding style, and docs (amongst other things). Does a resolution about Golang being acceptable need to describe dependency management, build tooling, and CI?

There are separate interfaces described there for Python and JavaScript.
I think it makes sense to start documenting the expected interface for
projects written in Go, for the same reason that we have the others, and
I don't think we would want to say "Go is fine" until we at least have a
start on that documentation -- otherwise we have a gap where projects
may do whatever they want, and we have to work to get them back into
sync.

Doug

--John

[1] http://governance.openstack.org/reference/project-testing-interface.html


OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
responded May 3, 2016 by Doug_Hellmann (87,520 points)   3 4 10
...