diff --git a/063-Proposed-Collaborative-Workflow-in-JCB.md b/063-Proposed-Collaborative-Workflow-in-JCB.md index 8786586..539f33d 100644 --- a/063-Proposed-Collaborative-Workflow-in-JCB.md +++ b/063-Proposed-Collaborative-Workflow-in-JCB.md @@ -159,8 +159,26 @@ This is illustrating the proposed workflow of developing components in JCB while [00:38:42](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h38m42s) -Here in JCB we click on Questions and Answers and there is one little snag here which I realized I haven't resolved. It is that you will need to have the same key for this package set in the admin or rather in the component as the one that the developer uses. That can only be given to you by the original owner of this package. [00:39:13](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h39m13s) Which in this case is myself. What does it means, it means that this export key must be the same one as the one that the package was compiled with originally. If you have imported this and you see a key here, you can be 100 % sure it is not the same key because this is an encrypted field. You are seeing the encrypted value, not the actual key. The actual key was never exported [00:39:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h39m45s) not encrypted it always remains encrypted. That's why we have the encrypted fields all around JCB. Not because we think it is going to make the database more secure necessarily. When we export and move data around which is secret, stay secret. Only within that specific component developing environment are those keys unique. The way you can have this is you will need to communicate with that developer and ask him permission, whether you can extend on this package and then he will need to manually give you this key. [00:40:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h40m22s) I can ask that from myself, I'm going to add that key here to be sure that it is the same key which it originally was compiled with. Those keys are the same and it's the way to tell everyone that you and that other developer are in an agreement. It possibly could happen that once your pull request to the Joomla Component [00:40:53](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h40m53s) Repo has been merged and accepted, that team needs to give you the key. That's how I think it'll work. I'm not hundred percent sure this is going to be cemented or is going to be changed. But you do realize that trust and collaboration goes hand in hand. They will need to give you the key. +Here in JCB we click on Questions and Answers and there is one little snag here which I realized I haven't resolved. It is that you will need to have the same key for this package set in the admin or rather in the component as the one that the developer uses. That can only be given to you by the original owner of this package. [00:39:13](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h39m13s) Which in this case is myself. What does it means, it means that this export key must be the same one as the one that the package was compiled with originally. If you have imported this and you see a key here, you can be 100 % sure it is not the same key because this is an encrypted field. You are seeing the encrypted value, not the actual key. The actual key was never exported [00:39:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h39m45s) not encrypted, it always remains encrypted. That's why we have the encrypted fields all around JCB. Not because we think it is going to make the database more secure necessarily. When we export and move data around which is secret, stay secret. Only within that specific component developing environment are those keys unique. The way you can have this is you will need to communicate with that developer and ask him permission, whether you can extend on this package and then he will need to manually give you this key. [00:40:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h40m22s) I can ask that from myself, I'm going to add that key here to be sure that it is the same key which it originally was compiled with. Those keys are the same and it's the way to tell everyone that you and that other developer are in an agreement. It possibly could happen that once your pull request to the Joomla Component [00:40:53](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h40m53s) Repo has been merged and accepted, that team needs to give you the key. That's how I think it'll work. I'm not hundred percent sure this is going to be cemented or is going to be changed. But do realize that trust and collaboration goes hand in hand. They will need to give you the key. If it's not a JCB package that requires a key, then it is a different story. The same procedure will reply, except the exchange of keys won't be necessary. Now that you've the key in place, click Questions and Answers, click Export JCB Package. + +### Need To Move The Package Into The Repository + +[00:41:35](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h41m35s) + +We now have this package in this folder and we will need to move it into the repository which is also the one we have synchronized with our forked version. I have it here. I'm going to cut [00:41:54](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h41m54s) it from my temporal folder in my Joomla website to this repository, paste it in. It is going to ask if it should be replace and we're going to say Yes replace it. There we go, we've the package updated. We can go back to command line and we do: [00:42:17](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h42m17s) git diff. We'll see that the file had changed. We also need to run the hash file to update it. Now type in: git status. [00:42:36](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h42m36s) We'll see if those files have been updated. You'd possibly, I'm not sure what via convention but I think your pull request to the Joomla Repository of this component, the ID of that could possibly be useful here. It's just to give a heads up and validate that you did first contribute the code to the actual Joomla Component and it was accepted. [00:43:08](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h43m08s) This is the change to the package which also needs to be looked at. In our case this is the pull request, the URL. I think we are going to use that in our commit message. Use the same commit message. It should looks something like this: git commit -am"Update the component with the improvements made in JCB ref.." [00:43:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h43m45s) then the repositories username or organisation name. The repository name with this #1, since the pull request was number one. We will submit that and push those changes to our version of the repository. + +### Going back To GitHub - Push Was Submitted - Will See A Link + +[00:44:24](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h44m24s) + +Going back to GitHub then after the push has been submitted and we've look at this commit. You will see it has a link, and this link is to that issue on GitHub, easy for us to trace where you have contributed it to the Joomla Component, and why it's all happened being the same commit message. [00:44:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h44m45s) At this stage you would again make a pull request to the master branch. Where we will review the changes. At this stage we don't have pull request templates and everything in place, but as soon as they do get to be placed there, then please follow those instructions. We will try to be as thorough as we can. But being a community is always up for discussion and we will try and [00:45:17](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h45m17s) do this the right way. At the moment we can put the ref in the description and then just again the comment in the title. If it's a long comment then just put a summary, a short one and put the long comment back in here. Then you create the pull request. At this point the discussion will begin validating to see that you followed all the procedures and that this package is stable and ready to become part of the [00:45:49](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h45m49s) Repo. Once it is accepted, it will be merged into the master branch, become available to the rest of the community. That's at the moment an illustration of what I consider a collaborative workflow in JCB. We were at Next Step [00:46:09](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m09s) and we had to move to JCB where they have accepted and merged the changes you made to the Joomla Component. + +### Owner Gave The Key - Trust The Changes - Forked The JCB Packages Repository + +[00:46:28](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m28s) + +The owner has given you the original key, because they trust the changes you've made, and you have forked the JCB package repository. Make sure you have it in sync. If it's an old fork, update the key with the key from the owner. Then export it to JCB package, add it to the local Repo with a commit message and the reference as illustrated. Then push the changed to your forked Repo and make a pull request. Here is the workflow. This could [00:46:55](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m55s) become nicely documented I suppose. Someone can take that upon them to even make some nice chart. I maybe not the correct guy for the job and this might expand and become maybe much more advanced or it could be made more simple. This is the explanation of the Collaborative Workflow with external partners around a JCB package. ???? -If it's not a JCB package that requires a key Then it is a different story And yet the same sort of procedure will reply except the exchange of keys won't be necessary [00:41:27](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h41m27s) But now that you've got the key in place we basically click here And exported the JCB package So we now have this package Here in this folder And we now need to move it Into the repository Which is also Obviously the one we have now synchronised with our forked version So I have it here I'm gonna copy it actually gonna cut [00:41:54](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h41m54s) let's cut it From my temporal folder in my Joomla website To this repository paste it in And he is gonna ask if it should be Replace and we're gonna say yes Replace it And there we go we've got the package updated Now And we go back to command line And we do [00:42:17](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h42m17s) Git diff We'll see that That file is changed Now we also need to run this sh This hash file To update the And Now git Status [00:42:36](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h42m36s) we'll see if those files have updated So You'd possibly I'm not sure what VL Convention but I think Your pull request to the Joomla Repository of this component The ID of that could possibly be useful here It's just to sort of give a heads up and validate that you did First Contribute the code To the actual Joomla component and it was accepted [00:43:08](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h43m08s) And now this is the change to the package Which also now needs to be looked at So our case This is the pull request URL I think we just gonna use that in our commit message And Use the same commit message So it should looks something like this Update the component with the improvements made in JCB and maybe say ref [00:43:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h43m45s) And then The repositories username or organisation name The repository name With this Hash one Since the The pull request was number one Ok that would Do and then Will submit that [00:44:08](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h44m08s) And Now we push those changes to our Version of the repository Going back to GitHub then after the push has been submitted and we've look at this commit You see it actually has a link And this link is to that issue on GitHub To be easy for us to trace where you have contributed it to the actual Joomla component And why it's all happened being the same comment message [00:44:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h44m45s) Now this stage you again would make a pull request To the master branch Where we will basically review The changes Now again at this stage We don't have pull request templates and everything in place But as soon as they do get to be placed there then please follow those instructions Will try to be as thorough as we can But obviously being a community is always up for discussion and we will Try and [00:45:17](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h45m17s) Do this The right way At the moment we can put the ref in the description and then just again the comment in the Title if it's a long comment then just put Maybe a summary here short one and put the wrong comment back in here Ok and then you basically created the pull request At this point discussion will begin Validating to see that you followed all the procedures And that this package is stable and ready to become part of the Actual [00:45:49](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h45m49s) Repo And then once accepted it will be merged into the master branch Become available to the rest of the community So that's At the moment Illustration of what I consider a collaborative workflow in JCB So we Where at Next Step [00:46:09](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m09s) And we had to move to JCB Where They have now accepted and merged The Changes you made To the Joomla component And now the owner has given you the original key Because they trust The changes you've made And [00:46:28](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m28s) you know forked the JCB package repository Make sure you have it in sync if it's an old fork Then update the key with the key from the owner Then export to JCB package Add it to the local repo with a commit message and the reference As illustrated Then push the changed to your forked repo and make a pull request So here Is the workflow This could [00:46:55](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h46m55s) Become nicely documented I suppose Someone can take that upon them to even Make some nice chart I maybe not the correct guy for the job And this might Expand and become maybe much more advanced or it could be made more simple But in a nutshell just [00:47:19](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h47m19s) Below an hour We're at 47 minutes sort of This is the explanation of the collaborative Workflow with external Partners Around a JCB package Once this pull request gets merge we are basically back At the that this is in sync [00:47:42](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h47m42s) And This is in sync And this will continue and I'll go on and on And obviously others will contribute so There there are some other complexities also In this process But that is sort of what I can see happening I know that when you Pull the changes from the previous package you know this Where is it [00:48:09](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h48m09s) You know the import the JCB package There is the option to import it as a clone Or to import it with a merge Now the idea would be that you will only import and merge your JCB package With the global Repo As they accept This pull request And so that You would always stay in sync with what actually is currently the community version Of the package [00:48:37](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h48m37s) And you could import it it as a clone and make changes to the Clone and effect that will not effect the Main Master Version But this all is a trial and error process which You would Sort of show, teach yourself how that works And so my idea is to do that within a blank install try it out Pull in some of the free version play around with it Until you become confident [00:49:06](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h49m06s) And then you are able to also start contributing To not only the community packages But also VDM packages to which you've got access And so help improve those components For everyone Well thanks for watching I hope this is insightful And I'm sure there might be things that some of you would not able to follow And I would encourage you to just Google that and do some tutorials and [00:49:33](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h49m33s) Then I'm sure your will Manage. Ok thanks for watching. \ No newline at end of file +Once this pull request gets merge, we are back at the that this is in sync [00:47:42](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h47m42s) And This is in sync And this will continue and I'll go on and on And obviously others will contribute so There there are some other complexities also In this process But that is sort of what I can see happening I know that when you Pull the changes from the previous package you know this Where is it [00:48:09](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h48m09s) You know the import the JCB package There is the option to import it as a clone Or to import it with a merge Now the idea would be that you will only import and merge your JCB package With the global Repo As they accept This pull request And so that You would always stay in sync with what actually is currently the community version Of the package [00:48:37](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h48m37s) And you could import it it as a clone and make changes to the Clone and effect that will not effect the Main Master Version But this all is a trial and error process which You would Sort of show, teach yourself how that works And so my idea is to do that within a blank install try it out Pull in some of the free version play around with it Until you become confident [00:49:06](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h49m06s) And then you are able to also start contributing To not only the community packages But also VDM packages to which you've got access And so help improve those components For everyone Well thanks for watching I hope this is insightful And I'm sure there might be things that some of you would not able to follow And I would encourage you to just Google that and do some tutorials and [00:49:33](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h49m33s) Then I'm sure your will Manage. Ok thanks for watching. \ No newline at end of file