aboutsummaryrefslogtreecommitdiff
path: root/tools/star/windows-msi.pod
blob: f8396f20a17aff20c046e11869969bea64b81be0 (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
130
131
132
133
134
135
136
137
138
139
=head1 windows-msi.pod - guide to build MSI 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 MSI 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.  Currently Star is on a monthly release cycle; we
expect to slow down to quarterly releases again sometime in the
future.

=head2 Steps to create an MSI package

If this is your first time releasing, B<read the whole guide before
starting>. That way you can ask questions and clear up and 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 WiX Toolset, if needed adjust the PATH environment variable
to point to its bin directory. The tools `heat`, `candle` and `light` should be
available now.

Install ActivePerl and make sure it is in PATH. `perl -V` should give a sensible
output.

If you do not have the C compiler "cl" installed yet, install the Microsoft Visual
C++ Express for version 2010 or perhaps newer.

Finally, install the Windows Software Development Kit (SDK) for your Windows
version.

=item 1.

Make sure there is no C:\rakudo directory, as this will be our installation target.
If there is one, remove it, perhaps after creating backup.

=item 2.

Use your browser to download the latest star release, replace YYYY.MM by year and month:
http://rakudo.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 3.

Run the Command Line for Visual Studio from the start menu. Alternatively you can
run cmd.exe followed by vcvars32.bat.

In either case, this should return a valid path:

  echo %VSINSTALLDIR%

=item 4.

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

  perl Configure.pl --prefix=C:\rakudo --gen-moar

This will create a Makefile and will start to compile the MoarVM backend.

=item 5.

Compile NQP and Rakudo by doing:

  nmake install

This will also precompile all modules and install binaries like `panda`.

=item 6.

Finally create the MSI package.

  nmake msi

Depending on your architecture you either rename that msi to:

  rakudo-star-YYYY.MM-x86 (no JIT).msi

or:

  rakudo-star-YYYY.MM-x86_64 (JIT).msi


=item 7.

Delete your C:\rakudo folder and make sure it got deleted. Then run the just created
installer, and do some sanity tests:

  perl6 -e "say $*KERNEL.bits"
  panda --installed list
  panda install Inline

=item 8.

Stop the release process if step 7 failed. Post any issues to the irc channel or mailing
list.

=item 9.

Upload the msi package to L<http://rakudo.org/downloads/star>:

 scp "rakudo-star-YYYY.MM-x86 (no JIT).msi" rakudo@rakudo.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 10.

Publicize the msi 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