import re

lista = """2019.3.0        Primeira versão totamente integrada com gitlab-ci
2019.3.0-dev0   Aplicado correções sugeridas por py3kwarn
2019.3.0-dev1   refatorado o metodo test_merge_csv_files0 para operar gitlab-ci com validação de csv
2019.3.0-dev2   import faker corrigido
2019.3.0-dev3   FAIL: test_discover_url_0 (TestAtosWebSF) corrigida
2019.3.0-dev4   corrigido ERROR: Failure: Error (unsupported locale setting)
2019.3.0-dev5   corrigido AssertionError em test_discover_url_0
2019.3.1        2019.3.1-dev0 → 2019.3.1
2019.3.1-dev0   fatoração de metodo a ser implementado futuramente
2019.3.10       Correções em epigrafe com mesmo numero
2019.3.11       Correções em º/°
2019.3.12       Correções em 'Nº 1.420 A'
2019.3.13       Corrigido diversos erros de falso positivo na localização da epigrafe e no capabilities para windows
2019.3.14       ferramentas e relatórios para reconstrução do acervo
2019.3.2        Validação gitlab-ci completa"""

pegar_data_extra = re.compile("\ {2,}")
pegar_ano_mes_dia = re.compile("(\d{4})\.(\d{1,2})\.(\d{1,2}).*")
pegar_extra = re.compile("-dev([^ ]+)")

def formatar_para_sort( x ):
	x = pegar_data_extra.split( x )[0]
	tmp = pegar_ano_mes_dia.search( x )
	extra= pegar_extra.search( x )
	ano = tmp.group(1)
	mes = tmp.group(2)
	dia = tmp.group(3)
	
	# pegar versão, se não tiver colocar uma alta 9999
	extra = extra.group(1) if extra else "9999"

	# corrigir mes/dia para 2 digitos
	mes = "0"+mes if len(mes) < 2 else mes
	dia = "0"+dia if len(dia) < 2 else dia
		
	out = ano+mes+dia+"."+extra

	#print(x, " => ", out)
	
	return out

l = sorted(lista.split(sep='\n'), key=formatar_para_sort, reverse=True)

for i in l:
	print( i )