Updated 062 Add your own JCB packages to the JCB Communty Directory (markdown)

Amigo 2019-09-27 08:14:01 +02:00
parent d9427ebe25
commit c07b6aef16
1 changed files with 17 additions and 19 deletions

@ -6,66 +6,64 @@
[00:00:00](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m00s)
(Click on these time links to see Youtube video)
I want to demonstrate the way to add JCB packages to the Community Directory. The moment if you go to Import JCB Packages, there is now a new tab called Community Packages. We would like to encourage all of you to start sharing packages. The main focus or purpose for it would become, to be a quick start for developing Components. [00:00:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m28s) It could serve as a back up for yourself to easily pull on old packages that you have developed. To maybe have a specific feature, for example linking your Joomla users into your component. I know have some components that does that. I often want to reuse that. [00:00:52](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m52s) You can now with this new idea be able to import that component over and over without merging it with the old version, but creating a new component, including fields and everything else. That is a way you will be able to quickly start a new project. You do not need to do all that over again.
I want to demonstrate the way to add JCB packages to the Community Directory. The moment if you go to Import JCB Packages, there is now a new tab called Community Packages. We would like to encourage all of you to start sharing packages. The main focus or purpose for it would become, to be a quick start for developing Components. [00:00:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m28s) It could serve as a back up for yourself to easily pull on old packages that you have developed. To maybe have a specific feature, for example linking your Joomla users into your component. I know have some components that do that. I often want to reuse that. [00:00:52](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m52s) You can now with this new idea be able to import that component over and over without merging it with the old version, but creating a new component, including fields and everything else. That is a way you will be able to quickly start a new project. You do not need to do all that over again.
### The Clone Feature
[00:01:17](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s)
It is sort of similar as the Clone feature that now has become available. The JCB components now have a Clone feature. You could select a component and you can clone it. In cloning it creates a exact copy of the component, but not linked to the components. Even did Admin Views. You will see that it creates a new Admin View. [00:01:44](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) The same goes for the fields. You can create a whole new set of fields, specifically for this component. You will see it have the same Suffix (EO). That is the Clone feature.
It is sort of similar to the Clone feature that now has become available. The JCB components now have a Clone feature. You could select a component and you can clone it. In cloning, it creates an exact copy of the component, but not linked to the components. Even did Admin Views. You will see that it creates a new Admin View. [00:01:44](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) The same goes for the fields. You can create a whole new set of fields, specifically for this component. You will see it have the same Suffix (EO). That is the Clone feature.
### The Import Feature - Merge Yes Or No
[00:02:00](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m00s)
The import feature has the same functionality. If for instance we would import the Demo component, then once we have the component from GitHub, we will see that it has this Merge option 'Yes' or 'No'. Remember we already have the Demo component, and it is exactly the same component, but I do not want it to update this one, [00:02:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m33s) I want it to bring it in as a new component, and then I will tick this to 'No'. It does give you a little explanation and tells you the validation rules, Field types, snippet, languages, and language strings. These things will still be merged, that simply is unavoidable. If you want to see what happens under the hood, click on 'Continue'. [00:03:03](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m03s) It will give you a whole lot of information of the import and also whatever files it moved. It created a new component. It did not update the old one. That is a very nice option, because you can quickly start with this component without affecting this one. Now you will see that even the Admin View is dislocated, it is not the same Admin View. The same again with the fields. If we look at the fields, you will see it also has the (Ra) Suffix to it.[00:03:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) This name does not appear anywhere in the compiled version of the components, it is all system names. This (Ra) will just be for you to know that this field belongs to this component and so on. That is what the new JCB Package Import option has been improved to manage.
The import feature has the same functionality. If for instance, we would import the Demo component, then once we have the component from GitHub, we will see that it has this Merge option 'Yes' or 'No'. Remember we already have the Demo component, and it is exactly the same component, but I do not want it to update this one, [00:02:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m33s) I want it to bring it in as a new component, and then I will tick this to 'No'. It does give you a little explanation and tells you the validation rules, Field types, snippets, languages, and language strings. These things will still be merged, that simply is unavoidable. If you want to see what happens under the hood, click on 'Continue'. [00:03:03](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m03s) It will give you a whole lot of information about the import and also whatever files it moved. It created a new component. It did not update the old one. That is a very nice option because you can quickly start with this component without affecting this one. Now you will see that even the Admin View is dislocated, it is not the same Admin View. The same again with the fields. If we look at the fields, you will see it also has the (Ra) Suffix to it. [00:03:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) This name does not appear anywhere in the compiled version of the components, it is all system names. This (Ra) will just be for you to know that this field belongs to this component and so on. That is what the new JCB Package Import option has been improved to manage.
### Community Option - Sharing
[00:04:01](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m01s)
Now with the community option you can do what we call 'Share'. Like I have been doing, sharing many information with all of you, components, tools. The idea that all of you would have this attitude of giving back to the community and the other option is that if you want to distribute a package, at the same time, maybe get some marketing, this is also going to be doing that. [00:04:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m33s) Let me illustrate to you the process of getting a package into the Community Packages. We are going to use GitHub. This repository, JCB community Packages, this is the URL vdm-io/JCB-Community-Packages. [00:04:57](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m57s) You will need to fork this package. I am not going to teach you how to use GitHub, neither how to use Git.
Now with the community option, you can do what we call 'Share'. Like I have been doing, sharing much information with all of you, components, tools. The idea that all of you would have this attitude of giving back to the community and the other option is that if you want to distribute a package, at the same time, maybe get some marketing, this is also going to be doing that. [00:04:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m33s) Let me illustrate to you the process of getting a package into the Community Packages. We are going to use GitHub. This repository, JCB community Packages, this is the URL vdm-io/JCB-Community-Packages. [00:04:57](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m57s) You will need to fork this package. I am not going to teach you how to use GitHub, neither how to use Git.
### Demonstration - When Adding A Package Must Start Forking The Repository
[00:05:06](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m06s)
I am going to illustrate what you need to do, demonstrating it to you. You need to go and study GitHub and Git specifically to be able to manage this. What will happen is anyone who wants to add a package, must start by forking the repository.<<<<<<<<<<<
I am going to illustrate what you need to do, demonstrating it to you. You need to go and study GitHub and Git specifically to be able to manage this. What will happen is anyone who wants to add a package, must start by forking the repository.
Once it has been forked, they need to clone it down to their the developing environment where they have JCB or to where they can move a JCB Package because at the end of the day they need to add their package which they want to contribute to their forked version of this JCB Community Packages.[00:05:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m53s) Once they have done all that and pushed up the changes to their repository, they will make a pull request to add the change into the Community Version of this repository. Hope that all makes sense to you. You will get the URL (Clone or Download) [00:06:14](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m14s) on your own repository, copy that and then you will go to your developing environment. Hopefully it will be Linux because you need to run a 'hash.sh' script. It needs to be a hash environment. You could run it in a VM where ever you want, just get it going.
Once it has been forked, they need to clone it down to their the developing environment where they have JCB or to where they can move a JCB Package because at the end of the day they need to add their package which they want to contribute to their forked version of this JCB Community Packages.[00:05:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m53s) Once they have done all that and pushed up the changes to their repository, they will make a pull request to add the change into the Community Version of this repository. I hope that all makes sense to you. You will get the URL (Clone or Download) [00:06:14](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m14s) on your own repository, copy that and then go to your developing environment. Hopefully, it will be Linux because you need to run a 'hash.sh' script. It needs to be a 'hash' environment. You could run it in a VM where ever you want, just get it going.
### Open A Terminal - Cloning The Repository
[00:06:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m36s)
I am going to open a terminal. In the terminal I am simply going to clone this repository. Once it is finished cloning, we are going to change it to that directory. If we list out the items, you will see that it is exactly the same as what we have here on GitHub. It is in literally the same information. [00:07:13](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m13s) It is a folder on your computer. We will then need to go to JCB, extract the package you want to share, and simply place it into this folder.<<<<<<<<<<<
Run this hash.sh script. We are in our JCB program [00:07:39](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m39s) and I want to share this question and answers component. I want to ask that you won't share things that do not work. If you still busy developing the thing then it is not time to share it yet. When it's ready and you know that it works, that means you've compiled it and tested it, and you know it stable, then you want to share it. It doesn't need to be a big component, it could have just one view. It doesn't matter, but it needs to be something other than already what exist. No more new demo components, [00:08:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m15s) it need to be something else. Please always check that if you want to contribute something, let it be something that's already there. If there is already one, and you want to improve it, sure then you can do that. You can pull it in, make it better and make it pull request to improve it. Know that we will have to be able to test it, if you're using a key, [00:08:42](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m42s) you can't contribute it without a key back. If someone places a package in the Community and it has a key, then it lockout everybody else, because then only they can improve it. [00:08:59](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m59s) As soon as they take the key away, then everybody else can improve it because there is no key and it doesn't matter. We all can check it out.
I am going to open a terminal. In the terminal, I am simply going to clone this repository. Once it is finished cloning, we are going to change it to that directory. If we list out the items, you will see that it is exactly the same as what we have here on GitHub. It is literally the same information. [00:07:13](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m13s) It is a folder on your computer. We will then need to go to JCB, extract the package you want to share, and simply place it into this folder. Run this hash.sh script. We are in our JCB program [00:07:39](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m39s) and I want to share this question and answers component. I want to ask that you would not share things that do not work. If you are still busy developing the thing then it is not time to share it yet. When it is ready and you know that it works, that means if you have compiled it and tested it, and you know it stable, then you may share it. It does not need to be a big component, it could have just one view as long it is something other than what already exists. No more new demo components, it needs to be something else. [00:08:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m15s) Please always check that if you want to contribute something, let it be something that is not already there. If there is already one, and you want to improve it, sure then you can do that. You can pull it in, make it better and make a pull request to improve it. Know that we will have to be able to test it if you are using a key, [00:08:42](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m42s) you can not contribute it without a key back. If someone places a package in the Community and it has a key, then it lockout everybody else.
### Helps Get Projects Going Quite Quickly
[00:09:09](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m09s)
I'm not exactly sure how all this is going to workout. I am very open to all of you to just give me feedback, input how you think this should be done. The idea is not to infringe on each other's projects, but to help each other get projects going quite quickly. That's really the agenda. The idea is if you want to build a project, lets get something that can serve as a base from which to start. This question and answers program is a very nice base. It have a few views and fields. It have a very simple straight forward implementation of Q&A for your front-end of your website. I thought this is a nice thing to use as a demonstration.
I am not exactly sure how all this is going to work out. I am very open to all of you to just give me feedback, input how you think this should be done. The idea is not to infringe on each other's projects but to help each other get projects going quite quickly. That is really the agenda. The idea is if you want to build a project, let's get something that can serve as a base from which to start. This question and answers program is a very nice base. It has a few views and fields. It has a very simple straight forward implementation of Q&A for your front-end of your website. I thought this is a nice thing to use as a demonstration.
### First Visit Video - Watch The Video - Give A Free Key
[00:10:03](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m03s)
Let us go to the component. Those of you who want to maybe give away the component, but you want to have people first visit a video that you've made, the way you could do this is, at this Buy Link, you'll make that link [00:10:23](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m23s) direct to your video. When they click on the Buy Link, they will go to the video where you are going to give them the key for free. They can watch the video, get the key come back and open the package. We're not currently implementing Package Link. The Package Link should be where the package is. Which most of the time will be the repository. [00:10:45](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m45s) Which is why we not fully implementing this because we don't need it. We left it for future purposes. At the moment we don't need it the way we've set up things. You can use the repo URL. It is only the Buy link that's really important. If it's not a free package or if it's a free package, but you're giving the key away. The other idea is not to add a key at all. If you don't add a key, then it will be a free package. [00:11:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m21s) This is how you make something a free package, it's leaving the key out. That's simple as that. Where as if you leave the key in, people will have to get the key from you. If you've a contributor to the community, you'll need to share the key with the admin of the repository. [00:11:43](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m43s) They can validate the component and check that it's safe for distribution. We'll still put some things in place, maybe a forum procedure on how to do this inside of JCB, or maybe just in the read more of the repository. We'll give you a heads up when that happens.
The explanation is simple, if you want to have people have the key from you, wherever they need to get it, whether it's free or paid, it needs to be this link. [00:12:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m15s) The Export key is what we used to build the key. You can put in anything here. Once you have all that in place, you will Export the JCB Package.
Let us go to the component. Those of you who want to maybe give away the component, but you want to have people first visit a video that you have made, the way you could do this is, at this 'Buy Link', you will make that link to [00:10:23](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m23s) direct to your video. When they click on the 'Buy Link', they will go to the video where you are going to give them the key for free. They can watch the video, get the key come back and open the package. We are not currently implementing 'Package Link'. The 'Package Link' should be where the package is, which most of the time will be the repository. [00:10:45](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m45s) That is why we are not fully implementing this because we do not need it. We left it for future purposes. At the moment we do not need it the way we have set up things. You can use the 'repo' URL. It is only the Buy link that is really important. If it is a free package or not, but you are giving the key away. The other idea is not to add a key at all. If you do not add a key, then it will be a free package. [00:11:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m21s) By leaving the key out you make it a free package. Whereas if you leave the key in, people will have to get the key from you. If you have it contributed to the community, you will need to share the key with the admin of the repository. [00:11:43](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m43s) They can validate the component and check that it is safe for distribution. Some things will be put in place, maybe a forum procedure on how to do this inside of JCB, or maybe just in the read more of the repository. There will be a heads up when that happens.
The explanation is simple, if you want to have people have the key from you, wherever they need to get it, whether it is free or paid, it needs to be this link. [00:12:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m15s) The Export key is what we used to build the key. You can put in anything here. Once you have all that in place, you will Export the JCB Package.
### Once Component Exported - The Package Is Available - In Temporal Directory
[00:12:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m35s)
Once you have the component exported, the package is available in a specific directory called "temporal directory" in your developing environment. The package that you want to add to the repository, this 'JCB_QuestionsAnswers.zip' is the key that you now need to give to everybody that wants to use the package. The key can nowhere to be found unless on this page [00:13:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m02s) where you compiled it. Store the key in a safe place, or use it in your video and give it to the people in the right playtime, whatever you like to to do.
Once you have the component exported, the package is available in a specific directory called "Temporal directory" in your developing environment. The package that you want to add to the repository, this 'JCB_QuestionsAnswers.zip' is the key that you now need to give to everybody that wants to use the package. The key can nowhere be found but on this page where you compiled it.[00:13:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m02s) Store the key in a safe place, or use it in your video and give it to the people at the right time, however you like.
### Next Step - Move Package Into Repository Which We Cloned Down
[00:13:16](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m16s)
The next step would be to move the package into the repository we cloned down to your local developing environment. I have the folder open where the package is. You will see there is the following path which we found when we look at its same path. We are going to drag and drop the file into the other folder which is where that clone repository is at the moment, in my home folder. The package has been added and we are done. [00:13:56](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m56s) We can close this one out. Go back to the terminal.
The next step would be to move the package into the repository which we have cloned down to your local developing environment. I have the folder open where the package is. There is the following path which we looked at previously. We are going to drag and drop the file into the other folder where that cloned repository is at the moment, in my home folder. The package has been added and we are done. [00:13:56](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m56s) We can close this one and return to the terminal. <<<<<<<<<
### In Terminal - git status - Run hash.sh Program Which Is A Bash Script
@ -77,29 +75,29 @@ Once in a terminal, you can say 'git status', it will tell you that one file isn
[00:15:01](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m01s)
What that script will do is very simple. It'll go through the files in the repository that are zip files, it will create a sum, and will place the sum in a file with the same name, except the sh added to the file name. There it adds it. It will get a shopFileName and then unzip the file to get the [00:15:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m28s) info.vdm file from the zip package. Then change that to the shopFileName which should be the same as your package name, with info as the prerogative. Which is what we need to show the people what your package name is, and who owns it and these things. That's where that info come from. It takes the information and it adds it to an array. Which then later gets written to the checksum.json. It's all it does. [00:15:55](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m55s) Nothing smart, it's straight forward. Some little Bash gets the information from the file for you without your having any issues, it follows convention.
What that script will do is very simple. It'll go through the files in the repository that are zip files, it will create a sum, and will place the sum in a file with the same name, except the sh added to the file name. There it adds it. It will get a shopFileName and then unzip the file to get the [00:15:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m28s) info.vdm file from the zip package. Then change that to the shopFileName which should be the same as your package name, with info as the prerogative. Which is what we need to show the people what your package name is, and who owns it and these things. That's where that info comes from. It takes the information and it adds it to an array. Which then later gets written to the checksum.json. It's all it does. [00:15:55](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m55s) Nothing smart, it's straight forward. Some little Bash gets the information from the file for you without your having any issues, it follows convention.
I'm going to go run the file and you can see what it does. You add the dot, make sure you are in the repository, [00:16:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m21s) ./hash.sh and enter. It should do that, as simple as that. It shouldn't take long and if it did, then something is wrong. This is all it should do.
### Again - git status - checksum.json - git diff
[00:16:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m33s)
If you again do the 'git status', you'll see that there are 3 files that are not been tracked, and the checksum.json file has been modified. Why? because there is a new line been added to checksum.json. If we type in 'git diff', you'll see that your component, the one that you are adding, is being added. That line was changed because it have a comma. But this is the new line that has been added. Add your component to the checksum.json. [00:17:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m15s) That is all that should change. You shouldn't change any other files in the repository. Only the ones that you are contributing are the ones that you must change.
If you again do the 'git status', you'll see that there are 3 files that are not been tracked, and the checksum.json file has been modified. Why? because there is a new line been added to checksum.json. If we type in 'git diff', you'll see that your component, the one that you are adding, is being added. That line was changed because it has a comma. But this is the new line that has been added. Add your component to the checksum.json. [00:17:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m15s) That is all that should change. You shouldn't change any other files in the repository. Only the ones that you are contributing are the ones that you must change.
### git Add The Files - Comment - git commit am"Added Questions And Answers Packages
[00:17:30](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m30s)
The next thing is to git add those files. Do git status, the words are now green. The comment, there's a lot of convention out there, I'm not keyed up with all of that. We can do [00:17:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m53s) 'git commit am"Added questions and answers package'. That's simple enough and then press enter. The m is for the message in the a is for pushing it all into the branch. If you have a pass phrase [00:18:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m21s) which you should have, then you have your commit signed. If you don't know how to sign commits in git then please Google that and get your keys in place. We would expect that all commits to this repo be signed. Especially since we need to be sure that it is you that are making the commit.
The next thing is to git add those files. Do git status, the words are now green. The comment, there's a lot of convention out there, I'm not keyed up with all of that. We can do [00:17:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m53s) 'git commit am"Added questions and answers package'. That's simple enough and then press enter. The m is for the message in the a is for pushing it all into the branch. If you have a passphrase [00:18:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m21s) which you should have, then you have your commit signed. If you don't know how to sign commits in git then please Google that and get your keys in place. We would expect that all commits to this repo be signed. Especially since we need to be sure that it is you that is making the commit.
### When All Is Done - git push To Your Repository On Github
[00:18:46](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m46s)
Now when you've done all that you do 'git' and you will push it up to your repository on GitHub. At this point you are still not affecting the community repository. It is just affecting the repository that you forked. This is a very secure way of dealing with this. If we now go back to GitHub [00:19:11](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m11s) were we fetch the page, you will see that it'll say this branch is one commit ahead of VDM. There is make a Pull Request. You will make a Pull Request and it will take you to the main repository and will explain to you which one is being pulled where and it will tell you that it is able to be merged. The information is being added for the info [00:19:40](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m40s) for the sha. and for the package which doesn't show because it's too big. You will see Binary file not shown. There is also the changes to the checksum.json.
Now when you've done all that you do 'git' and you will push it up to your repository on GitHub. At this point, you are still not affecting the community repository. It is just affecting the repository that you forked. This is a very secure way of dealing with this. If we now go back to GitHub [00:19:11](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m11s) were we fetch the page, you will see that it'll say this branch is one commit ahead of VDM. There is make a Pull Request. You will make a Pull Request and it will take you to the main repository and will explain to you which one is being pulled where and it will tell you that it is able to be merged. The information is being added for the info [00:19:40](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m40s) for the sha. and for the package which doesn't show because it's too big. You will see the Binary file not shown. There are also changes to the checksum.json.
### Create A Pull Request
[00:19:54](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m54s)
Now at this point you will need to create a pull request. Click on Create Pull Request. The comment that you made in your repository, when you contributed the package, would be added as the title. If you want to give a little explanation of things that the admin team need to have anticipate, because we have to test this. We can't add packages to the community packets branch without being able to test it. If you have a key for the package, we will create a form [00:20:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m35s) where you will be able to submit that. We'll put that in the information because at the moment this area doesn't even have a pull request template. We will add a pull request template, when you create a pull request, it will tell you where to send the key. At the moment if there's no pull request, keep the packages that are coming that are free at the moment. As soon as the templates is in place then you can use it and then make a pull request. At the moment I'm the only one that [00:21:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m07s) manage this. I hope that others would get involved. There are some other developers involved on the JCB Repository, but I would like to also encourage them to get involved, and be able to help me test these packages, make sure that only valid and stable packages gets added. [00:21:30](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m30s) Click Create pull request. I don't want to pull this into the repository at the stage. I'm going to do it later. This is the procedure that you need to follow to get a package into the community packages. [00:21:58](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m58s) Because once it's been merged into the master branch, it will also become available on this page automatically. Automatically it'll show up in the drop down. That is a simple as it is. If you have any questions please open a issue at the correct place. If you want to talk about the packages for the community, open the issue here. [00:22:27](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h22m27s) Please don't make a open issues at JCBs repository regarding this issue, so that we'll have a clear separation between these two concepts.
Now at this point, you will need to create a pull request. Click on Create Pull Request. The comment that you made in your repository when you contributed the package, would be added as the title. If you want to give a little explanation of things that the admin team needs to consider because we have to test this. We can't add packages to the community packets branch without being able to test it. If you have a key for the package, we will create a form [00:20:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m35s) where you will be able to submit that. We'll put that in the information because at the moment this area doesn't even have a pull request template. We will add a pull request template when you create a pull request, it will tell you where to send the key. At the moment if there's no pull request, keep the packages that are coming that are free at the moment. As soon as the templates are in place then you can use it and then make a pull request. At the moment I'm the only one that [00:21:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m07s) manage this. I hope that others would get involved. There are some other developers involved in the JCB Repository, but I would like to also encourage them to get involved and be able to help me test these packages, make sure that only valid and stable packages get added. [00:21:30](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m30s) Click Create pull request. I don't want to pull this into the repository at the stage. I'm going to do it later. This is the procedure that you need to follow to get a package into the community packages. [00:21:58](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m58s) Because once it's been merged into the master branch, it will also become available on this page automatically. Automatically it'll show up in the dropdown. That is as simple as it is. If you have any questions please open an issue at the correct place. If you want to talk about the packages for the community, open the issue here. [00:22:27](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h22m27s) Please don't make a open issues at JCBs repository regarding this issue, so that we'll have a clear separation between these two concepts.