Skip to content

Conversation

@bignaux
Copy link

@bignaux bignaux commented Jul 4, 2022

allow docker user to be able to track commit revision of ps2dev and save detail of build env in their asset, and others stuffs like that. Could be easily shared to other ps2dev repo.

@bignaux bignaux changed the title add repo-like manifest timestamp file add repo manifest timestamp file Jul 4, 2022
@rickgaiser
Copy link
Member

I think what you're proposing could be very interesting, but doing this right can be very difficult and lead to many discussion and/or confusion. So please make the PR description as clear as possible.

This is what I think it does, or should do, so correct me if I'm wrong:
With this PR we can create a manifest file containing the hashes of all git repositories used to create the ps2dev docker image. This manifest is in 'google repo' format, so we can use that tool to automatically fetch all git repositories with those exact hashes. This can be uses for 2 purposes:

  • Knowing exactly what dependencies where used to build a certain application (like OPL / RA / SDL2)
  • Being able to build a certain version again, becouse we know exactly how it was built.

Questions:

  • Do we need to move https://github.com/bignaux/ps2pkgs.git to ps2dev ?
  • Here I don't see all git repositories used by the ps2dev docker image, will te rest be added too and how?

@bignaux
Copy link
Author

bignaux commented Jul 4, 2022

Being able to build a certain version again, becouse we know exactly how it was built.

With limitation for now, that i don't record main dependancies, the BASE_DOCKER_IMAGE so basicly for now, that could sound not very useful. But do thing in all the others repos, and we could have a complete record. I'm looking to see how to manage this pinned manifest more seriously, btw idea here is to start somewhere and plant seeds. For example, i'm very interesting by repo diffmanifest .

Do we need to move https://github.com/bignaux/ps2pkgs.git to ps2dev ?

we don't use this file (yet) but android repo implementation need a URI for the first repo init ... else you'll get fatal: manifest url is required. trying to init first with local file. We could move to ps2homebrew or ps2dev (i'm not a member yet), but that's not ready yet. More a limitation of the software than a desire on my part to introduce this now.

Here I don't see all git repositories used by the ps2dev docker image, will te rest be added too and how?

in fact, dockerfile here only use build-extra.sh so it doesn't retrieve the repos i commented. It more a limitation of how docker image are build on ps2dev, but in the fact, the pinned manifest create here, is true for what have been necessary to build the docker image, and a bit why i don't use the build-manifest.sh on other targets (windows/mac/ubuntu). I just let commented stuff as a record.

@bignaux
Copy link
Author

bignaux commented Jul 4, 2022

# cat /usr/local/ps2dev/manifests/ps2dev.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name="ps2dev" fetch="https://github.com/ps2dev"/>
  
  <default remote="ps2dev" revision="master" sync-j="8"/>
  
  <project name="ps2-packer.git" path="ps2dev/build/ps2-packer" revision="6be0c7d29396a58097ac4427b41582d42a769cf7" upstream="master" dest-branch="master"/>
  <project name="ps2client.git" path="ps2dev/build/ps2client" revision="5bd3d58999b3c5102ed7b93e0d2d6d862886ef9e" upstream="master" dest-branch="master"/>
  <project name="ps2dev.git" path="ps2dev" revision="f7025a41eafb2c241084cee02964b564a098ccaf" upstream="master" dest-branch="master"/>
</manifest>

@rickgaiser
Copy link
Member

This is nice as a draft / proof-of-concept, but I'm missing the complete picture:

  • What repositories need to be changed to make it complete
  • How do you merge multiple manifests into 1 (or do you plan to use separate files?)

Please describe your plans on how to make this complete and usefull in the PR description.

@bignaux
Copy link
Author

bignaux commented Jul 9, 2022

I see some issues here :

  • docker github action is not triggered, other checks are useless and waste of machine time.
  • if we don't use the tree hierarchy (PS2_WORKSPACE), we do only workaround and can't go further. If i got a green light, i can change /scripts to be compliant (rewrite with a simple makefile would be quite better).The difficulty is to make people accept this change because it forces users to create a standardized tree instead of compiling the dependencies inside the project ( here /build ).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants