aboutsummaryrefslogtreecommitdiff
path: root/tools/star/mac-dmg.pod
blob: 5eead083cfaa237ee12712254dbacb69ecedbf81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
=head1 mac-dmg.pod - guide to building DMG packages

Rakudo Star releases are based on Rakudo compiler releases.
Since some time is often needed for module updates and testing
after each Rakudo compiler release, the timing of Star releases
varies from one release to the next. The dmg packages are based
on these Star releases.

Also, while the Rakudo compiler issues monthly releases; Star
releases are free to choose a longer release cycle.  Star releases
are also free to choose older releases of the compiler, NQP, and/or
MoarVM.  The goal is to balance end-user stability needs with
progress being made on the compiler, modules, and other runtime
components. 

=head2 Steps to create an DMG package

A ".dmg" is a file extension used for an Apple Disk Image which is the most
popular way of running an installer on the Mac desktop

If this is your first time releasing, B<read the whole guide before
starting>. That way you can ask questions and clear up any confusions before
you're in the thick of it.

If you have done this before, you might want to check for and read any changes
to this release guide since your last run.

=over 4

=item 0.

Download and install Xcode from Apple if you don't already have the clang C
compiler installed. This process was tested on OS X 10.11.x as a build system
using clang-700.1.76 and the result is known to run on as least far back as OS
X 10.9 (and probably further). 

=item 1.

Use your browser to download the latest star release, replace YYYY.MM by year and month:
https://rakudo.perl6.org/downloads/star/rakudo-star-YYYY.MM.tar.gz

Unpack this .tar.gz to your hard disk. You will get a folder rakudo-star-YYYY.MM, again
YYYY.MM is year and month of the star release.

=item 2.

Change the path to the directory created in the previous step, and run:

  cd ports/darwin_dmg
  perl package_darwin_dmg.pl --build -v YYYY MM 

This should automatically compile the MoarVM version of star and all modules and create the .dmg

In theory this all that needs doing and you can jump to step 4 below.

=item 3.

Watch the scrollback for errors.

If the build is interrupted you will have to manually 'make clean' in the top
level directory before rerunning the previous step. 

Note the '--build' option will automatically delete the binary destination
directory of '/Applications/Rakudo' if it exists before running but leaves it in
place after finishing.

Omitting the '--build' option will just rebuild the .dmg from '/Applications/Rakudo' which is useful when debugging the final stage of .dmg build since it's much faster.

=item 4.

A correct build will create 'ports/darwin_dmg/Temp_build/Rakudo-Star-YYYY-MM.dmg'

To sanity test

  open Temp_build/Rakudo-Star-YYYY-MM.dmg

This should automount '/Volumes/Rakudo' and open a Finder window with a
background image of Camelia and "Drag the Rakudo Folder to Applications"
containing a README.txt, a Rakudo folder, Docs folder and a folder representing
a sym link to Applications.

Delete the directory used to create the .dmg.

 rm -rf /Applications/Rakudo 

Now dragging the 'Rakudo' folder to the Applications Link folder (with arrow)
should repopulate '/Applications/Rakudo'. 

Append your PATH as suggested in the 'README.txt' and look for reasonable output
from the following kind of commands.

  perl6 -e "say 'hello'"
  zef list --installed
  p6doc -l

=item 5.

Stop the release process if you see serious issues with no obvious fix and post
them to the IRC channel or mailing list. If you alter scripts recommit them.

=item 6.

Upload the dmg package to L<https://rakudo.perl6.org/downloads/star>:

 scp "rakudo-star-YYYY.MM.dmg" rakudo@www.p6c.org:public_html/downloads/star

If you don't have permission to do this step, please ask one(pmichaud, jnthn,
masak, PerlJam/perlpilot, tadzik, moritz) on #perl6 to do it for you.

=item 7.

Publicize the dmg packages in the appropriate places.  These include:

=over 4

=item * rakudo.org

=item * #perl6

=back

=item 11.

You're done!  Celebrate with the appropriate amount of fun.

=back

=cut