User:Renich/Go Packaging Guidelines

From FedoraProject

< User:Renich
Revision as of 07:15, 4 February 2011 by Renich (Talk | contribs)

Jump to: navigation, search

Contents

Description

The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

It, also, includes a plethora of packages and related projects.

Go Packaging

Naming

Since go is a compiler and comes with many packages (libraries); distributed independently. Packaging guidelines should be applied only to those projects that expand go's functionality. Independent standalone packages should be named applying the NamingGuidelines .

Building

Warning (medium size).png
Go doesn't support stripping yet; stripping actually breaks the build. This issue is known. It must be avoided for the time being.

This can be done with Packaging Howto :

%global _enable_debug_package 0
%global debug_package %{nil}
%global __os_install_post /usr/lib/rpm/brp-compress %{nil}

File Placement

For now and as noted here, go has no intention to satisfy the FHS or POSIX standards.

This said, it is not impossible to put the binaries and libraries where they should be: /usr/bin and /usr/lib64/go accordingly.

Besides this, go needs a src directory inside the libraries dir; this is: /usr/lib64/go/src

Documentation

No man pages are provided for go or any of it's libraries. Go has it's own documentation application called godoc. It is used to show documentation for the libraries and packages. It can, also, generate html documentation if needed.

Go Packages and Projects

Naming

Building

File Placement

Documentation

Tips for Packagers

Reference

Websites

Oficial website: http://golang.org/

Projects: http://godashboard.appspot.com/project

Packages: http://godashboard.appspot.com/package

Communication

Mailing list: http://groups.google.com/group/golang-nuts

IRC: irc://irc.freenode.net/go-nuts

Twitter: http://twitter.com/go_nuts

Blog: http://blog.golang.org/