Un projet bidon qui déclencherait le build des 3 autres en le modifiant, genre note de version.
Un projet bidon qui déclencherait le build des 3 autres en le modifiant, genre note de version.
Ben en fait plus qu'un projet bidon faudrait surtout une gestion propre des dépendances.
Ton projet api_common devrait être versionné, et tes project_1 et project_2 devraient déclarer explicitement la version qu'ils utilisent (soit en allant chercher le bon tag sur git si rebuild de api_common au sein des projets, soit en allant chercher sur un dépôt quelconque).
Du coup quand tu augmenteras le numéro de version utilisé, ben ça rebuildera les projets.
Sinon ça va être le bordel quand tu vas faire des breaking changes dans api_common et que tu veux pas tout casser ou que t'as le temps de migrer qu'un des 2 projets.
Bon ça répond pas vraiment à ta question par contre.
C'est la faute à Arteis
L'api évolue très peu, ce ne sont que des correctifs mineurs, mineurs.
Par contre elle est très utilisée. Et je développe deux programmes qui l'utilisent, et qui sont chacun sollicités par plusieurs testeurs. Les testeurs ne veulent pas aller ailleurs que sur la page du projet dont ils ont la charge, donc exit ta solution, ami Patate
L'idée, c'était que lorsque le mainteneur de l'api fait une modif, les pipe-line CICD de mes deux programmes sont automatiquement relancés pour générer un nouvel exécutable (et surtout une dll à jour). L'idée est surtout que les testeurs n'aient pas à se prendre la tête, notamment vérifier si le build CICD de leur programme est postérieur ou non au dernier commit/ dernier build de l'api, dont ils n'ont cure.
Là, chaque fois que je regénère l'un des projets, il a l'api à jour avec le trigger (clone en local + compile). Mais si toto fait bouger l'api, il tient vraiment à ce que les serveurs soient MAJ de suite.
Dernière modification par vectra ; 28/06/2021 à 20h29.
Un trigger ou webhook apparemment ça irait : https://stackoverflow.com/a/42841567/4856922
Du coup c'est ton projet api_common qui déclenche les builds sur les projets clients, il doit donc les connaitre (et tu devras générer un token sur chaque projet client), mais si tu n'en a que deux ça va. Deux cent ça serait plus chiant ^^.
J'ai une question pour les pros de cmake.
Je veux créer, pour certains fichiers qui sont dans un repertoire (extension toto), une version zippée (extension titi) qui est ensuite prise en charge si je fais un "install". L'idée c'est lister les fichiers sources, créer les zip dans un sous rep du répertoire de build, et ajouter ces fichiers à la target pour qu'il soient pris en charge lors de l'install. (je précise que myZip n'est pas un truc compilé dans mon projet, c'est un exe banal du système, qui prends en argument la destination et la source)
J'ai un truc qui fonctionne en utilisant add_custom_command, mais pour une raison inexpliquée, la commande est tout le temps executée pour tous les fichiers, même quand les fichiers de départ ne changent pas.
Voici le code:
Y'a t il un truc que je fais mal ? Est ce voué à l'échec parce que les custom targets sont des fichiers générés ?Code:set(zipped_files) file(GLOB_RECURSE srcFileList CONFIGURE_DEPENDS *.toto) foreach(srcFile ${srcFileList}) string(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/(.*)\.toto" "${BUILD_DIR}/\\1\.titi" zipFile ${srcFile}) add_custom_command( OUTPUT ${zipFile} COMMAND myzip ARGS ${zipFile} ${srcFile} DEPENDS ${srcFile} ) set(zipped_files ${zipped_files} ${zipFile}) endforeach() add_custom_target(ZipProj SOURCES ${zipped_files})
Il manque TARGET ${EXE_NAME}
C'est ce qui va lier le déclenchement du truc à la réalisation de l'exe en question.
La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!
C'est pareil en pire: les fichiers zippés sont plus copiés à l'install.
Ca m'étonnait d'ailleurs que ça puisse être ça: normalement toute SOURCE est forcément une dépendance non ?
edit: j'ai trouvé le problème. Forcément, c'était pas ce bout de code qui était en cause, mais un truc en amont qui purgeait les fichiers générés par erreur.
Merci à vous !
une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
Canard lecture
Base case c'est cas d'arrêt ?
Cas de base, cas d'arrêt, cas terminal: c'est la même chose, un cas qui ne provoque pas d'appel récursif. En espérant que tous les autres cas ne mènent, ultimement, qu'à des cas de base.
Oui c'est la traduction que je ne connaissais pas ^^
Quand j'ai appris à faire du récursif (c'était du Scheme en 99) on m'a appris à d'abord écrire le cas d'arrêt avant de faire la récursive. C'était un bon conseil.
C'est un bon conseil pour ne pas l'oublier, mais ça ne suffit pas forcément. La bonne pratique, c'est de toujours se poser la question de pourquoi le calcul termine toujours, mais ça peut mener loin...
Ouais heu, la récursion, c'est d'abord le base case. Sinon ça s'appelle de la merde.
Sinon, des gens connaissent Meson Build/ comme alternative à CMake?
Au début, j'avais surtout envie de sortir les fourches parce que ça repose sur Python et que ça crée inutilement un autre standard sans pour autant révolutionner le game
Ca me faisait vraiment chier par rapport à CMake qui me semblait à la base du fonctionnement de CLion.
Bon puis finalement, j'ai trouvé un post de blog Jetbrains qui détaille bien comment bosser en CLion avec un projet Meson, donc là c'est juste 'meh'.
C'est vrai que c'est plus simple. Mais de là à éluder le standard du marché juste parce qu'on n'a pas envie de bosser son CMakelists.txt, c'est un peu léger comme argumentaire. Je viens chercher des avis plus matures.
Y'a pas de fierté à avoir à se péter les dents sur toutes les bizarreries de CMake juste pour prouver qu'on est un bonhomme, ni à l'imposer à des gens parce qu'on en a chié à l'utiliser, tout le monde a le droit à une vie meilleure.
Oui les standards tout ça, mais c'est aussi une bonne chose d'avoir différentes options pour faire du logiciel (qui n'est pas un marché).
J'utilise Meson et je trouve ça pas mal, même si c'est pas parfait. Les fonctionnalités intéressantes pour moi sont évidemment le script beaucoup moins prise de tête, et les subprojects qui permettent nativement de bien découper ses projets dans des dépôts séparés et offrent une gestion à peu près automatisée (oubliez les git submodules). Il est capable d'interagir avec des projets/dépendances CMake dans une certaine mesure aussi.
Par contre pour l'intégration avec des package managers, c'est pas encore ça. Il a wrapdb qui est censé remplir ce rôle mais c'est pas à jour ni à la hauteur, et faut bidouiller un peu pour utiliser conan par exemple.
Je suis pas sûr de comprendre la différence avec les sous-projets CMake. D'ailleurs ma team me l'a vendu comme étant pareil (mais vite fait).
Quid du simple script shell ?
Pas assez "cadré" et comme dirait Larry Wall TMTOWTDI - ce qui peut poser des problèmes de maintenabilité dans le temps ?
Dernière modification par Nattefrost ; 13/07/2021 à 13h20.
Ce serait une démarche saine, mais que je me vois dans l'obligation de déconseiller dans la plupart des cas...
(Pour rappel, Coq n'accepte pas la définition d'une fonction de tri rapide: il n'arrive pas à voir tout seul pourquoi ça termine, il faut le lui prouve. Heureusement, c'est pas trop difficile)
Hello
J'ai un petit problème en C# et particulièrement avec l'IDE Rider, voici ma configuration :
- .net core installé : 3.1 et 5.0
- .net framework : 4.8
Je n'ai aucun soucis de compilation que cela soit console ou WPF et quel que soit le sdk. Rider est configurer de base comme il viens, pas de plugin particulier.
Je m'intéresse à Monogame (https://www.monogame.net/) et j'ai essayer de m'y plonger avec Rider, pour ce faire, j'ai installer Monogame avec la commande :
Cela a marcher, j'ai bien les templates qui se sont rajouter dans dotnet et également sur Rider.Code:dotnet new --install MonoGame.Templates.CSharp
Dans Rider je lance le template Monogame pour DirectX. (J'ai également tester avec OpenGL). Et Rider (ou dotnet) me génère un tas de fichier pour le projet et a la fin, m'affiche un message d'avertissement :
Effectivement Rider me souligne aussi plein de truc dans le code généré, même les using...15:50 Project 'CPCMonogameTest' load finished with warnings: [MSB3073] La commande "dotnet C:\Users\Whiskey\.nuget\packages\monogame.content. builder.task\3.8.0.1641\build\\..\tools\netcoreapp 3.1\any\mgcb.dll /quiet /@:"F:\Dev\dotnet\CPCMonogameTest\CPCMonogameTest\C ontent\Content.mgcb" /platform:Windows /outputDir:"F:/Dev/dotnet/CPCMonogameTest/CPCMonogameTest/Content/bin/Windows/Content" /intermediateDir:"F:/Dev/dotnet/CPCMonogameTest/CPCMonogameTest/Content/obj/Windows/Content" /workingDir:"F:/Dev/dotnet/CPCMonogameTest/CPCMonogameTest/Content/"" s'est arrêtée avec le code 1. at (138:5)
J'ai un peu de mal a comprendre l'erreur/avertissement, je précise que le projet est censé utilisé le sdk 3.1 qui est installé
Quelqu'un a t-il une idée ? Merci d'avance.
De ce que j'ai vu de Rider, il ne prend pas de libertés par rapport à Visual Studio. Au vu de ma modeste expérience.
Tu pourrais DL Visual pour vérifier que c'est un problème spécifique à l'IDE ou pas?
Essaye donc de compiler/publier avec le CLI https://docs.monogame.net/articles/packaging_games.html voir si c'est un soucis de l'IDE ou pas.
Non cela ne passe pas meme erreur en ligne de commande. Donc je dois conclure que l'ide ni est pour rien. Au moins j'avance
Est ce le fait que net5.0 soit installé en plus du 3.1 qui peut poser problème ?
Sur le message d'erreur à la place de Whiskey il y a mon prénom et mon nom (ce qui figure sur mon compte de session). Ce que je veux dire c'est que ca contient un espace, ca peut jouer sur l'erreur ?
-----------
Bon problème résolu ca marche sur Rider. Le soucis etait bien l'espace.... J'ai changer le chemin du reposity de nuget via la variable d'environnement NUGET_PACKAGES et cela marche parfaitement.
Comment péter un plombs avec un truc totalement idiot Merci en tout cas
Dernière modification par Whiskey ; 13/07/2021 à 23h31.
A oui j'ai déjà eu des soucis à la con avec les chemins, depuis je fais gaffe aussi.
Hello les canards,
Je viens trainer par ici au bout de 2 jours à me galérer pour mettre en place une appli React.
Un peu de contexte:
- Je n'y connais RIEN en React. J'ai quelques bases de code (HTML, Python) qui me permettent à peu près de comprendre et me débrouiller la plupart du temps.
- A la base, je cherche une solution pour déployer un site Web à partir de ma page Notion, de façon un peu plus propre et surtout plus rapide que juste en partageant mon lien Notion. L'idée est d'en faire un blog, et pouvoir ajouter du CSS personnalisé + améliorer le SEO.
- J'ai déjà expérimenté le truc sous Potion.so mais je veux un truc plus artisanal et qui me coûtera au passage moins cher.
Partant de ça, j'ai trouvé une solution sur Github :
https://github.com/transitive-bullsh...on-starter-kit
Sur le papier c'est top et ça fait exactement ce que je veux. Sauf que je galère à le déployer même en local, à cause d'une erreur détaillée par quelqu'un d'autre ici, liée à une dépendance :
https://github.com/transitive-bullsh...kit/issues/122
Une solution a été proposée en PR ici :
https://github.com/transitive-bullsh...tweets/pull/34
Et c'est là que ça coince, je ne sais absolument pas comment faire pour mettre en place ce correctif. J'ai essayé de regarder des tutos et autres pour voir comment tout ça fonctionnait, mais ça dépasse clairement ma compréhension ici.
Quelqu'un saurait m'aiguiller ?
Merci
Yo, je vais peut-être travailler sur du C#, ça fait un moment que je n'y ai pas touché (2014/2015). Vous recommandez des ressources en particulier? J'aimerais un truc qui liste toutes les releases et toutes les nouveautés jusqu'à aujourd'hui.
Je vais démarrer avec ça: https://docs.microsoft.com/en-us/dot...ersion-history
ça a l'air pas mal, mais c'est exhaustif et j'aime bien les trucs plus orientés pratiques, qui soulignent ce que tu utilises vraiment tous les jours.
Et si vous avez un avis sur le C# moderne, ou un truc qui vous passe par la tête n'hésitez pas.
Je vais aussi checker Rider vs. Visual Studio + Resharper
J'ai les mains dedans depuis 2012, l'écosystème a énormément progressé.
Ce qui a changé depuis 2014-2015 : .NET Core et ses copains (ASP.NET Core qui a mergé ASP.NET MVC et API et les aberrations qui existait entre les deux, multiplate-forme, etc) qui est resté en parallèle du .NET Framework (l'originel) pendant quelques années, avec des ponts entre les deux (.NET Standard) et qui viens tout juste d'être réunifié au travers de .NET 5.
Je te conseillerai de regarder un peu les notions derrière tout ce petit monde, même si fondamentalement rien n'a été révolutionné, juste une longue évolution, profonde et réelle.
Tu peux aussi aller voir les ajouts dans C# des nouvelles versions, il y a énormément de sucre syntaxique qui rends le langage très agréable, mais si t'en faisait en 2015 tu sera pas dépaysé.
Globalement WPF est le parent pauvre de tout ça, ça n'a pas vraiment évolué, et s'il a été rajouté à .NET 5 c'est vraiment juste pour que la réunification soit totale, mais on sent que c'est le grand père dont on ne sait plus trop quoi faire.