amagovpt / autenticacao.gov

Middleware Oficial de Identificação Eletrónica em Portugal - Cartão de Cidadão, da Chave Móvel Digital e Sistema de Certificação de atributos profissionais
https://www.autenticacao.gov.pt
European Union Public License 1.2
168 stars 33 forks source link

Tamanho do repositório #48

Closed mamoit closed 3 years ago

mamoit commented 3 years ago

Clonei agora pela primeira vez o repositório, e espantei-me com um full clone com cerca de 700MB.

Não sei se é da doc por ter PDFs uploaded, mas se calhar não era má ideia re-pensar a documentação (não fazer commit de blobs como PDFs e ODTs) com qualquer coisa mais git friendly estilo doxygen ou mesmo markdown (que pode depois ser processado para produzir os PDFs).

Sugiro BFG e, se não quiserem separar os PDF e ODTs do código, podem pensar em usar git lfs.

ACamposPT commented 3 years ago

Olá @mamoit . É bem visto o teu ponto. Na verdade, nós já temos a documentação em markdown e doxygen. Posteriormente são convertidos em html (via github docs) e em PDF. Os ficheiros PDF serem guardados e estarem disponíveis para várias versões é um requisito do projecto. O que acontece é que estamos a guardar os ficheiros PDF gerados no mesmo repo.

Estamos agora a ponderar criar um repo só para a documentação, para evitar que o tamanho deste repositório cresça muito.

mamoit commented 3 years ago

Podem guardar os PDFs como artefactos num doc.zip ou individualmente junto a cada release aqui. Por ex neste repositório cada release tem todas uma quantidade de ficheiros binários compilados para cada uma das plataformas

Podem distribuir por aqui a documentação referente a cada uma das versões e até poderiam aproveitar e fazer distribuir o binário junto do código também, no entanto devido à especificidade do projecto não sei se o podem fazer.

Idealmente até seria o CI a fazer build e construir a release com doc e binário. Tens mais informação aqui em como o fazer, se precisares de ajuda ou opiniões avisa.

ACamposPT commented 3 years ago

Devido aos requisitos do projecto, avançamos com a seguinte solução, já implementada. Separamos a documentação do projecto e colocamos em outro repositório, para que este fique só com o código:

https://github.com/amagovpt/docs.autenticacao.gov

Neste novo repositório vamos disponibilizar os manuais (de todas as versões) via github pages, bem como em PDF, ambos gerados a partir de markdown.

A documentação do SDK Java (javadocs ) e SDK C++ (doxygen), vamos também disponibilizar neste novo repositório.

Cada tag corresponde a uma versão da aplicação, sendo possivel consultar facilmente a documentação de versões anteriores.

Os binários compilados e assinados continuam a ser disponibilizados pelo portal autenticação.gov: https://www.autenticacao.gov.pt/web/guest/cc-aplicacao

mamoit commented 3 years ago

Just for the record, este problema não está resolvido:

$ git clone  https://github.com/amagovpt/autenticacao.gov.git
Cloning into 'autenticacao.gov'...
remote: Enumerating objects: 1416, done.
remote: Counting objects: 100% (1416/1416), done.
remote: Compressing objects: 100% (521/521), done.
remote: Total 54854 (delta 824), reused 1271 (delta 756), pack-reused 53438
Receiving objects: 100% (54854/54854), 713.56 MiB | 11.13 MiB/s, done.
Resolving deltas: 100% (34667/34667), done.
ACamposPT commented 3 years ago

Devido as características do projecto não está previsto alterar o histórico do repositório. O que garantimos com esta alteração é que o tamanho do repositório não cresce muito mais.

É sempre possível fazer clone sem fazer download de todo o histórico, com o seguinte comando: git clone https://github.com/amagovpt/autenticacao.gov.git --depth 1