Checklist for adding internal cell types
========================================

Things to do right away:

	- Add to kernel/celltypes.h (incl. eval() handling for non-mem cells)
	- Add to InternalCellChecker::check() in kernel/rtlil.cc
	- Add to techlibs/common/simlib.v
	- Add to techlibs/common/techmap.v

Things to do after finalizing the cell interface:

	- Add support to kernel/satgen.h for the new cell type
	- Add to docs/source/CHAPTER_CellLib.rst (or just add a fixme to the bottom)
	- Maybe add support to the Verilog backend for dumping such cells as expression



Checklist for creating Yosys releases
=====================================

Update the CHANGELOG file:

	cd ~yosys
	gitk &
	vi CHANGELOG


Update and check documentation:

	cd ~yosys
	make docs
	- sanity check the figures in docs/images
	    - if there are any odd things -> investigate

	cd ~yosys
	vi README guidelines/*
	- is the information provided in those file still up to date


Then with default config setting:

	cd ~yosys
	make vgtest

	cd ~yosys
	./yosys -p 'proc; show' tests/simple/fiedler-cooley.v
	./yosys -p 'proc; opt; show' tests/simple/fiedler-cooley.v
	./yosys -p 'synth; show' tests/simple/fiedler-cooley.v
	./yosys -p 'synth_xilinx -top up3down5; show' tests/simple/fiedler-cooley.v

	cd ~yosys/examples/cmos
	bash testbench.sh

	cd ~yosys/examples/basys3
	bash run.sh


Test building plugins with various of the standard passes:

	yosys-config --build test.so equiv_simple.cc
	- also check the code examples in guidelines/GettingStarted


And if a version of the verific library is currently available:

	cd ~yosys
	cat frontends/verific/build_amd64.txt
	- follow instructions

	cd frontends/verific
	../../yosys test_navre.ys


Finally run all tests with "make config-{clang,gcc}":

	cd ~yosys
	make clean
	make test
	make ystests
	make vloghtb
	make install

	cd ~yosys-bigsim
	make clean
	make full

	cd ~vloghammer
	make purge gen_issues gen_samples
	make SYN_LIST="yosys" SIM_LIST="icarus yosim verilator" REPORT_FULL=1 world
	chromium-browser report.html


Release:

	- set YOSYS_VER to x.y.z in Makefile
	- remove "bumpversion" target from Makefile
	- update version string in CHANGELOG
	git commit -am "Yosys x.y.z"

	- push tag to github
	- post changelog on github
	- post short release note on reddit


Updating the website:

	cd ~yosys
	make install

	cd ~yosys-web
	make update_show
	git commit -am update
	make push

	- Read the Docs updates handled by Jenkins on source change
