You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
=======================
 | 
						|
Vendored library policy
 | 
						|
=======================
 | 
						|
 | 
						|
To simplify Bleach development, we're now vendoring certain libraries that
 | 
						|
we use.
 | 
						|
 | 
						|
Vendored libraries must follow these rules:
 | 
						|
 | 
						|
1. Vendored libraries must be pure Python--no compiling.
 | 
						|
2. Source code for the libary is included in this directory.
 | 
						|
3. License must be included in this repo and in the Bleach distribution.
 | 
						|
4. Requirements of the library become requirements of Bleach.
 | 
						|
5. No modifications to the library may be made.
 | 
						|
 | 
						|
 | 
						|
Adding/Updating a vendored library
 | 
						|
==================================
 | 
						|
 | 
						|
Way to vendor a library or update a version:
 | 
						|
 | 
						|
1. Update ``vendor.txt`` with the library, version, and hash. You can use
 | 
						|
   `hashin <https://pypi.org/project/hashin/>`_.
 | 
						|
2. Remove all old files and directories of the old version.
 | 
						|
3. Run ``pip_install_vendor.sh`` and check everything it produced in including
 | 
						|
   the ``.dist-info`` directory and contents.
 | 
						|
4. Update the bleach minor version in the next release.
 | 
						|
 | 
						|
 | 
						|
Reviewing a change involving a vendored library
 | 
						|
===============================================
 | 
						|
 | 
						|
Way to verify a vendored library addition/update:
 | 
						|
 | 
						|
1. Pull down the branch.
 | 
						|
2. Delete all the old files and directories of the old version.
 | 
						|
3. Run ``pip_install_vendor.sh``.
 | 
						|
4. Run ``git diff`` and verify there are no changes.
 | 
						|
 | 
						|
 | 
						|
NB: the current ``vendor.txt`` was generated with pip 20.2.3, which might be necessary to reproduce the dist-info
 | 
						|
 | 
						|
 | 
						|
Removing/Unvendoring a vendored library
 | 
						|
=======================================
 | 
						|
 | 
						|
A vendored library might be removed for any of the following reasons:
 | 
						|
 | 
						|
* it violates the vendoring policy (e.g. an incompatible license
 | 
						|
  change)
 | 
						|
* a suitable replacement is found
 | 
						|
* bleach has the resources to test and QA new bleach releases against
 | 
						|
  multiple versions of the previously vendored library
 | 
						|
 | 
						|
To unvendor a library:
 | 
						|
 | 
						|
1. Remove the library and its hashes from ``vendor.txt``.
 | 
						|
2. Remove library files and directories from this directory.
 | 
						|
3. Run ``install_vendor.sh`` and check the previously vendored library including
 | 
						|
   the ``.dist-info`` directory and contents is not installed.
 | 
						|
4. Update the bleach minor version in the next release.
 |