View | Details | Raw Unified | Return to bug 155391
Collapse All | Expand All

(-)article.sgml (-113 / +155 lines)
Lines 2803-2937 Link Here
2803
2803
2804
	<qandaentry>
2804
	<qandaentry>
2805
	  <question>
2805
	  <question>
2806
	    <para>How long is a ports freeze?</para>
2806
	    <para>What is a <quote>ports slush</quote> or
2807
	      <quote>feature freeze</quote>?</para>
2807
	  </question>
2808
	  </question>
2808
2809
	  <answer>
2810
	    <para>Usually a week or two.</para>
2811
	  </answer>
2812
	</qandaentry>
2813
2814
	<qandaentry>
2815
	  <question>
2816
	    <para>What does it mean to me?</para>
2817
	  </question>
2818
2819
	  <answer>
2809
	  <answer>
2820
	    <para>During the ports freeze, you are not allowed to
2810
	    <para>
2821
	      commit anything to the tree without explicit approval
2811
	      During a release cycle the ports tree may be in a  
2822
	      from the Ports Management Team.  <quote>Explicit
2812
	      <quote>slush</quote> state instead of in a hard freeze.
2823
	      approval</quote> here means that you send a patch to
2813
	      The goal during a slush is to reach a stable ports tree
2824
	      the Ports Management Team for review and get a reply
2814
	      to avoid rebuilding large sets of packages for the
2825
	      saying, <quote>Go ahead and commit it.</quote> 
2815
	      release and to tag the tree. During this time
2816
	      <quote>sweeping changes</quote> are prohibited unless
2817
	      specifically permitted by portmgr. Complete details
2818
	      about what consitutes a sweeping change can be found
2819
	      on the <ulink 
2820
	      url="&url.base/portmgr/implementation.html">Portmgr
2821
	      Implementation page</ulink>.
2826
	    </para>
2822
	    </para>
2827
2823
	    <para>
2828
	    <para>Not everything is allowed to be committed during
2824
	      The benefit of using a slush as opposed to a
2829
	      a freeze.  Please see the <ulink
2825
	      complete freeze is that allows maintainers to continue 
2830
		url="&url.base/portmgr/qa.html">Portmgr Quality
2826
	      adding new ports, making routine version updates and 
2831
		Assurance page</ulink> for more information.
2827
	      bug fixes to most existing ports, and otherwise
2832
	    </para>
2828
	      improving the tree without destabilizing things with
2833
2829
	      sweeping changes that have effects far beyond the
2834
	    <para>Note that you do not have implicit permission to fix
2830
	      ports that are changed. For example, updating the
2835
	      a port during the freeze just because it is
2831
	      shared library version on a port that many other
2836
	      broken.</para>
2832
	      ports depend on.
2837
	  </answer>
2838
	</qandaentry>
2839
2840
	<qandaentry>
2841
	  <question>
2842
	    <para>How do I know when the ports freeze starts?</para>
2843
	  </question>
2844
2845
	  <answer>
2846
	    <para>The ports management team will send out warning
2847
	      messages to the &a.ports; and &a.committers;
2848
	      announcing the start of the impending release, usually
2849
	      two or three weeks in advance.  The exact starting time
2850
	      will not be determined until a few days before the
2851
	      actual release.  This is because the ports freeze has to
2852
	      be synchronized with the release, and it is usually not
2853
	      known until then when exactly the release will be
2854
	      rolled.</para>
2855
2856
	    <para>When the freeze starts, there will be another
2857
	      announcement to the &a.ports; and &a.committers;, of course.</para>
2858
	  </answer>
2859
	</qandaentry>
2860
2861
	<qandaentry>
2862
	  <question>
2863
	    <para>How do I know when the ports freeze ends?</para>
2864
	  </question>
2865
2866
	  <answer>
2867
	    <para>A few hours after the release, the ports management team
2868
	      will send out a mail to the &a.ports; and &a.committers;
2869
	      announcing the end of the ports freeze.  Note that the
2870
	      release being cut does not automatically end the freeze.
2871
	      We have to make sure there will not be any last minute
2872
	      snafus that result in an immediate re-rolling of the
2873
	      release.</para>
2874
	  </answer>
2833
	  </answer>
2875
	</qandaentry>
2834
	</qandaentry>
2876
      </qandadiv>
2877
2878
      <qandadiv>
2879
	<title>Creating a New Category</title>
2880
2835
2881
	<qandaentry>
2836
	<qandaentry>
2882
	  <question>
2837
	  <question>
2883
	    <para>What is the procedure for creating a new category?</para>
2838
	    <para>How long is a ports freeze or slush?</para>
2884
	  </question>
2839
	  </question>
2885
2840
2886
	  <answer>
2841
	  <answer>
2887
	    <para>Please see
2842
	    <para>A freeze only lasts long enough to 
2888
	      <ulink url="&url.books.porters-handbook;/makefile-categories.html#PROPOSING-CATEGORIES">
2843
	      tag the tree. A slush usually lasts a week or two,
2889
	      Proposing a New Category</ulink> in the Porter's Handbook.
2844
		but may last longer.</para>
2890
	      Once that procedure has been followed and the PR has been
2845
	    </answer>
2891
	      assigned to &a.portmgr;, it is their decision whether or
2846
	  </qandaentry>
2892
	      not to approve it.  If they do, it is their responsibility
2847
2893
	      to do the following:</para>
2848
	  <qandaentry>
2894
2849
	    <question>
2895
	    <procedure>
2850
	      <para>What does it mean to me?</para>
2896
	      <step>
2851
	    </question>
2897
		<para>Perform any needed repocopies.  (This only applies
2852
2898
		  to physical categories.)</para>
2853
	    <answer>
2899
	      </step>
2854
	      <para>During a ports freeze, you are not allowed to
2900
2855
		commit anything to the tree without explicit approval
2901
	      <step>
2856
		from the Ports Management Team.  <quote>Explicit
2902
		<para>Update the <makevar>VALID_CATEGORIES</makevar>
2857
		approval</quote> here means that you send a patch to
2903
		  definition in <filename>ports/Mk/bsd.port.mk</filename>.
2858
		the Ports Management Team for review and get a reply
2904
		</para>
2859
		saying, <quote>Go ahead and commit it.</quote> 
2905
	      </step>
2860
	      </para>
2906
2861
2907
	      <step>
2862
	      <para>Not everything is allowed to be committed during
2908
		<para>Assign the PR back to you.</para>
2863
		a freeze.  Please see the <ulink
2909
	      </step>
2864
		  url="&url.base/portmgr/qa.html">Portmgr Quality
2910
	    </procedure>
2865
		  Assurance page</ulink> for more information.
2911
	  </answer>
2866
	      </para>
2912
	</qandaentry>
2867
2868
	      <para>Note that you do not have implicit permission to fix
2869
		a port during the freeze just because it is
2870
		broken.
2871
	      </para>
2872
		  
2873
	      <para>During a ports slush, you are still allowed to
2874
	       commit but must excersise more caution in what you
2875
	       commit. Furthermore a special note (typically <quote>Feature
2876
	       Safe: yes</quote>) must be added to the commit message.
2877
	      </para>
2878
2879
	    </answer>
2880
	  </qandaentry>
2881
2882
	  <qandaentry>
2883
	    <question>
2884
	      <para>How do I know when the ports slush starts?</para>
2885
	    </question>
2886
2887
	    <answer>
2888
	      <para>The ports management team will send out warning
2889
		messages to the &a.ports; and &a.committers;
2890
		announcing the start of the impending release, usually
2891
		two or three weeks in advance.  The exact starting time
2892
		will not be determined until a few days before the
2893
		actual release.  This is because the ports slush has to
2894
		be synchronized with the release, and it is usually not
2895
		known until then when exactly the release will be
2896
		rolled.</para>
2897
2898
	      <para>When the slush starts, there will be another
2899
		announcement to the &a.ports; and &a.committers;, of course.</para>
2900
	    </answer>
2901
	  </qandaentry>
2902
2903
	  <qandaentry>
2904
	    <question>
2905
	      <para>How do I know when the freeze or slush ends?</para>
2906
	    </question>
2907
2908
	    <answer>
2909
	      <para>A few hours after the release, the ports management team
2910
		will send out a mail to the &a.ports; and &a.committers;
2911
		announcing the end of the ports freeze or slush.  Note that the
2912
		release being cut does not automatically indicate the end. 
2913
		We have to make sure there will not be any last minute
2914
		snafus that result in an immediate re-rolling of the
2915
		release.</para>
2916
	    </answer>
2917
	  </qandaentry>
2918
	</qandadiv>
2919
2920
	<qandadiv>
2921
	  <title>Creating a New Category</title>
2922
2923
	  <qandaentry>
2924
	    <question>
2925
	      <para>What is the procedure for creating a new category?</para>
2926
	    </question>
2927
2928
	    <answer>
2929
	      <para>Please see
2930
		<ulink url="&url.books.porters-handbook;/makefile-categories.html#PROPOSING-CATEGORIES">
2931
		Proposing a New Category</ulink> in the Porter's Handbook.
2932
		Once that procedure has been followed and the PR has been
2933
		assigned to &a.portmgr;, it is their decision whether or
2934
		not to approve it.  If they do, it is their responsibility
2935
		to do the following:</para>
2913
2936
2914
	<qandaentry>
2937
	      <procedure>
2915
	  <question>
2938
		<step>
2916
	    <para>What do I need to do to implement a new physical
2939
		  <para>Perform any needed repocopies.  (This only applies
2917
	      category?</para>
2940
		    to physical categories.)</para>
2918
	  </question>
2941
		</step>
2919
2942
2920
	  <answer>
2943
		<step>
2921
	    <para>The procedure is a strict superset of the one to
2944
		  <para>Update the <makevar>VALID_CATEGORIES</makevar>
2922
	      repocopy individual ports (see above).</para>
2945
		    definition in <filename>ports/Mk/bsd.port.mk</filename>.
2946
		  </para>
2947
		</step>
2923
2948
2924
	      <procedure>
2925
		<step>
2949
		<step>
2926
		  <para>Upgrade each copied port's
2950
		  <para>Assign the PR back to you.</para>
2927
		    <filename>Makefile</filename>.  Do not connect the
2951
		</step>
2928
		    new category to the build yet.</para>
2952
	      </procedure>
2953
	    </answer>
2954
	  </qandaentry>
2929
2955
2930
		  <para>To do this, you will need to:</para>
2956
	  <qandaentry>
2931
		    <procedure>
2957
	    <question>
2932
		      <step>
2958
	      <para>What do I need to do to implement a new physical
2933
			<para>Change the port's <makevar>CATEGORIES</makevar>
2959
		category?</para>
2934
			  (this was the point of the exercise, remember?)
2960
	    </question>
2961
2962
	    <answer>
2963
	      <para>The procedure is a strict superset of the one to
2964
		repocopy individual ports (see above).</para>
2965
2966
		<procedure>
2967
		  <step>
2968
		    <para>Upgrade each copied port's
2969
		      <filename>Makefile</filename>.  Do not connect the
2970
		      new category to the build yet.</para>
2971
2972
		    <para>To do this, you will need to:</para>
2973
		      <procedure>
2974
			<step>
2975
			  <para>Change the port's <makevar>CATEGORIES</makevar>
2976
			    (this was the point of the exercise, remember?)
2935
			  The new category should be listed
2977
			  The new category should be listed
2936
			  <emphasis>first</emphasis>.  This will help to
2978
			  <emphasis>first</emphasis>.  This will help to
2937
			  ensure that the <makevar>PKGORIGIN</makevar>
2979
			  ensure that the <makevar>PKGORIGIN</makevar>

Return to bug 155391