[#43120] [ruby-trunk - Bug #6124][Open] What is the purpose of "fake" gems in Ruby — Vit Ondruch <v.ondruch@...>

27 messages 2012/03/07

[#43142] Questions about thread performance (with benchmark included) — Rodrigo Rosenfeld Rosas <rr.rosas@...>

A while ago I've written an article entitled "How Nokogiri and JRuby

10 messages 2012/03/08

[#43148] [ruby-trunk - Feature #6126][Open] Introduce yes/no constants aliases for true/false — Egor Homakov <homakov@...>

16 messages 2012/03/09

[#43238] [ruby-trunk - Feature #6130][Open] inspect using to_s is pain — Thomas Sawyer <transfire@...>

21 messages 2012/03/11

[#43313] [ruby-trunk - Feature #6150][Open] add Enumerable#grep_v — Suraj Kurapati <sunaku@...>

17 messages 2012/03/15

[#43325] [ruby-trunk - Bug #6154][Open] Eliminate extending WaitReadable/Writable at runtime — Charles Nutter <headius@...>

25 messages 2012/03/16

[#43334] [ruby-trunk - Bug #6155][Open] Enumerable::Lazy#flat_map raises an exception when an element does not respond to #each — Dan Kubb <dan.kubb@...>

9 messages 2012/03/16

[#43370] [ruby-trunk - Feature #6166][Open] Enumerator::Lazy#pinch — Thomas Sawyer <transfire@...>

15 messages 2012/03/17

[#43373] [ruby-trunk - Bug #6168][Open] Segfault in OpenSSL bindings — Nguma Abojo <git.email.address@...>

14 messages 2012/03/17

[#43454] [ruby-trunk - Bug #6174][Open] Fix collision of ConditionVariable#wait timeout and #signal (+ other cosmetic changes) — "funny_falcon (Yura Sokolov)" <funny.falcon@...>

10 messages 2012/03/18

[#43497] [ruby-trunk - Bug #6179][Open] File::pos broken in Windows 1.9.3p125 — "jmthomas (Jason Thomas)" <jmthomas@...>

24 messages 2012/03/20

[#43502] [ruby-trunk - Feature #6180][Open] to_b for converting objects to a boolean value — "AaronLasseigne (Aaron Lasseigne)" <aaron.lasseigne@...>

17 messages 2012/03/20

[#43529] [ruby-trunk - Bug #6183][Open] Enumerator::Lazy performance issue — "gregolsen (Innokenty Mikhailov)" <anotheroneman@...>

36 messages 2012/03/21

[#43543] [ruby-trunk - Bug #6184][Open] [BUG] Segmentation fault ruby 1.9.3p165 (2012-03-18 revision 35078) [x86_64-darwin11.3.0] — "Gebor (Pierre-Henry Frohring)" <frohring.pierrehenry@...>

8 messages 2012/03/21

[#43672] [ruby-trunk - Feature #6201][Open] do_something then return :special_case (include "then" operator) — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

12 messages 2012/03/26

[#43678] [ruby-trunk - Bug #6203][Open] Array#values_at does not handle ranges with end index past the end of the array — "ferrous26 (Mark Rada)" <markrada26@...>

15 messages 2012/03/26

[#43794] [ruby-trunk - Feature #6216][Open] SystemStackError backtraces should not be reduced to one line — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

15 messages 2012/03/28

[#43814] [ruby-trunk - Feature #6219][Open] Return value of Hash#store — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>

20 messages 2012/03/28

[#43858] [ruby-trunk - Feature #6222][Open] Use ++ to connect statements — "gcao (Guoliang Cao)" <gcao99@...>

12 messages 2012/03/29

[#43904] [ruby-trunk - Feature #6225][Open] Hash#+ — "trans (Thomas Sawyer)" <transfire@...>

36 messages 2012/03/29

[#43951] [ruby-trunk - Bug #6228][Open] [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "jonforums (Jon Forums)" <redmine@...>

28 messages 2012/03/30

[#43996] [ruby-trunk - Bug #6236][Open] WEBrick::HTTPServer swallows Exception — "regularfry (Alex Young)" <alex@...>

13 messages 2012/03/31

[ruby-core:43032] Re: English instructions for setting up chkbuild?

From: "NARUSE, Yui" <naruse@...>
Date: 2012-03-01 10:54:50 UTC
List: ruby-core #43032
(2012/03/01 3:04), Luis Lavena wrote:
> I've looked into RubyCI: http://rubyci.org/
> 
> And thought would be great to contribute other type of box for
> building on a different architecture and platform, perhaps even have
> this running on Windows.
> 
> It links back to chkbuild repository:
> 
> http://cvs.m17n.org/viewcvs/ruby/chkbuild/
> 
> Which it's only documentation is in Japanese.
> 
> Questions:
> 
> 1) Is there any other documentation available to getting started with chkbuild?

Translation by google translate and my fix is below.

> 2) Is there a alternate Subversion or Git repository for chkbuild
> source? CVS is not on my toolbelt and completely ignorant on how to
> set it up on Windows

Doesn't mingw include cvs.exe?

= Chkbuild

chkbuild is to build the software on a regular basis,
and generate HTML page as a record of the build.

== Author

Akira Tanaka <akr@fsij.org>

== Feature

* You can set the timeout

  After the timeout, kill the process.
  Therefore, it will finish at the specified time even if it may stack.

* Automatically takes backtrace

  Once the core has been generated build results, start the gdb automatically,
  and record the backtrace.

* Records of the past are automatically compressed gzip

* Compare with the previous record

  For example the time of day you run the command, something different every time is replaced by preprocessor before comparison.
  It is also possible to set a target to replace individual-specific configuration of the build.

* If you get the source form cvs or svn, generate a link to the diff of ViewVC.

* Even if they occur failures in a single build, you can continue with the rest part that does not depend on the failure.

== How to install and build the latest version of ruby ​​and to try for the impatient user

  % cd $HOME
  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/ruby ​​co chkbuild
  % cd chkbuild
  % ruby start-build

  % w3m tmp/public_html/ruby-trunk/summary.html
  % w3m tmp/public_html/ruby-1.8/summary.html
  % w3m tmp/public_html/ruby-1.8-pth/summary.html

  % rm -rf tmp

  This way is for trial,
  Don't use this with cron.

== Installation

Assumption:
* your user name is foo,
* Install chkbuild to /home/foo/chkbuild.

Replace $U with foo or something.

(1) Download chkbuild and extract

      % export U=foo
      % cd /home/$U
      % cvs -d: pserver: anonymous@cvs.m17n.org :/ cvs / ruby ​​co chkbuild

(2) Setting of chkbuild

    There are various examples in sample directory.
    You can edit appropriate one.
    start-build is a script that calls the sample.

      % cd chkbuild
      % vi sample/build-ruby
      % vi start-build

    More detailed settings will be discussed in the next section.

    Note that you must set ChkBuild.top_uri = "..." as the URL to publish the results if you use RSS.
    There are comments about this in sample/build-ruby.
    (If you do not edit this, inappropriate URL will be embedded into the HTML.)

    In the case running ruby ​​start-build without configuration.
    it build ruby's trunk and some branches in /home/$U/chkbuild/tmp.

    If you are building as a $U user, you have to remove the build results
    because it will disturb the build of the chkbuild user.

      % rm -rf tmp

(3) Create chkbuild user

    Create a dedicated user group for the chkbuild user.
    For security, please make sure it is only for the chkbuild user.
    In addition, add $U to the chkbuild group,
    create a directory with the owner group mode as written below,
    and chkbuild can write only under build and public_html directory.

      /home/chkbuild             user=$U group=chkbuild mode=2755
      /home/chkbuild/build       user=$U group=chkbuild mode=2775
      /home/chkbuild/public_html user=$U group=chkbuild mode=2775

      % su
      # adduser --disabled-login --no-create-home chkbuild
      # usermod -G ...,chkbuild $U
      # cd /home
      # mkdir chkbuild
      # chown $U:chkbuild chkbuild
      # chmod 2755 chkbuild
      # mkdir chkbuild/build
      # mkdir chkbuild/public_html
      # chown $U:chkbuild chkbuild/build chkbuild/public_html
      # chmod 2775 chkbuild/build chkbuild/public_html
      # exit

(4) Generated Directory setting

      % ln -s /home/chkbuild /home/$U/chkbuild/tmp

    If you want to build under /home/chkbuild with the default settings,
    it is easy to make a symbolic link.

(5) File upload by rsync

    If the host which chkbuild runs differs from the HTTP server to
    publish generated files, you can copy them with rsync over ssh.

    To do this, you generated (no pass phrase) is first used to communicate key pair ssh.

      % Ssh-keygen-N''-t rsa-f chkbuild-upload-C chkbuild-upload

    In the HTTP server will create a directory to store uploaded files
    Here we will use the / home / $ U / public_html / chkbuild.

      % Mkdir-p / home / $ U / public_html / chkbuild
 
    Create a set of rsync daemon for receiving an upload with HTTP server.
    (. Does not mean to say that you always move daemon)
    Here is to make and / home / $ U / .ssh / chkbuild-rsyncd.conf.
    Rsync daemon to use this setting is under / home / $ U / public_html / chkbuild
    Will be write-only.

      / Home / $ U / .ssh / chkbuild-rsyncd.conf:
      [Upload]
      path = / home / $ U / public_html / chkbuild
      use chroot = no
      read only = no
      write only = yes
    
    - The user receives a HTTP server upload / .ssh / authorized_keys
    Add the following.
    This is what you want to use the key here is to be dedicated to start the rsync daemon on the above settings.

      command = "/ usr / bin / rsync - server - daemon -. config = / home / $ U / .ssh / chkbuild-rsyncd.conf", no-port-forwarding, no-X11-forwarding, no- The contents of the generated public key chkbuild-upload.pub agent-forwarding, no-pty above

    on the host operating the chkbuild, to record the ssh fingerprint of the HTTP server.
    The http-server and the host name of the HTTP server.

      % Mkdir / home / chkbuild / .ssh
      % Ssh-keyscan-t rsa http-server> / home / chkbuild / .ssh / known_hosts

    Of the host to operate the private key chkbuild the generated key pair on the
    Copy the / home / chkbuild / .ssh /
    The group permissions, such as the secret key and a user-readable chkbild
    Sets.

      % Cp chkbuild-upload chkbuild-upload.pub / home / chkbuild / .ssh /
      % Su
      # Chgrp chkbuild / home / chkbuild / .ssh / chkbuild-upload
      # Chmod g + r / home / chkbuild / .ssh / chkbuild-upload

    And, enable the following line in the start-build.

      ChkBuild.rsync_ssh_upload_target ("remoteuser @ http-server :: upload / dir", "/ home / chkbuild / .ssh / chkbuild-upload")

    Copy of the HTTP server to be / home / $ U / public_html / chkbuild / dir This
    Will look like.

(6) Setting of HTTP server

    chkbuild in order to save bandwidth and disk, and then gzip the file compression.
    Compressed files and file names will be html.gz. * That *. Txt.gz.
    In order to view these files from the browser headers, such as:
    Must be sent to the browser from the HTTP server.

      Content-Type: text / html
      Content-Encoding: gzip

    In addition, because it gives you a file named rss RSS, give the following header.

      Content-Type: application / rss + xml

    How do these settings is dependent on the HTTP server,
    For Apache, you can control the module header mod_mime.
    http://httpd.apache.org/docs/2.2/mod/mod_mime.html

    Concrete way, but depend on the status of the global setting,
    By putting them in / home / $ U / public_html / .htaccess settings such as:
    May be able to accomplish the above.

      # Suppress the AddType for. Gz in the configuration of the entire server,
      # Content-Encoding in file gz:. To gzip
      # Content-Type for html:. It to text / html is a server-wide settings
      # Here we do not do as what is done
      RemoveType. Gz
      AddEncoding gzip. Gz

      # File named rss is Content-Type: and application / rss + xml
      <Files Rss>
      ForceType application / rss + xml
      </ Files>

(7) Settings to run on a recurring basis

      # Vi / etc / crontab

    For example, to run 33 minutes every day at 3 am like the following in root's crontab
    Sets.

      33 3 *** root cd / home / $ U / chkbuild; su chkbuild-c / home / $ U / chkbuild / start-build

    by su chkbuild, to launch the start-build in chkbuild user.

(8) announcement

    If you want to see a developer Ruby, you might want to register Ruby hotlinks.

    http://www.rubyist.net/~kazu/samidare/latest

== Configuration

Settings of chkbuild are written in Ruby.
In fact, the body of the chkbuild is a library of Ruby named chkbuild.rb,
so the setting is to write a script which uses chkbuild.rb.

== Security

by chkbuild, to compile the latest version can be downloaded from the cvs / svn / git server,
You will want to trust the code that comes with the developer and the server can be written to the server.

To trust the developers usually not a problem.
If you do not trust the developer, then you will not use the program in the first place.

However, to trust the code that comes with server is fraught with subtle problem.
The server might be cracked, a malicious person to insert malicious code.
For example, if you are running with the privileges of, it does not they may have been removed in your home directory,
May be put away your private key has been stolen.

For this reason, chkbuild will run in at least a dedicated user,
There should not make any changes to your home directory.

So that they will not be rewritten the script itself chkbuild, you should chkbuild and its dedicated user and also owned by another user.
In addition, the need to provide a user dedicated to the term "another user" is not.
It is also good for your permission, can be a root.

In addition, if you want to have more carefully,
Please also consider limiting the environment xen, chroot, jail, user mode linux, VMware, in and so on.

== TODO

* To generate index.html

== LICENSE

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

 1. Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and / or other materials provided with the distribution.
 3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR `` AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.

(The modified BSD license)

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread