From f8d903733ec6f1a4248acec3a528a5ad1c235afc Mon Sep 17 00:00:00 2001 From: Amigo <49749100+aamigo@users.noreply.github.com> Date: Thu, 19 Sep 2019 17:00:22 +0200 Subject: [PATCH] Updated 062 Add your own JCB packages to the JCB Communty Directory (markdown) --- ...-packages-to-the-JCB-Communty-Directory.md | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/062-Add-your-own-JCB-packages-to-the-JCB-Communty-Directory.md b/062-Add-your-own-JCB-packages-to-the-JCB-Communty-Directory.md index 34df739..75c798a 100644 --- a/062-Add-your-own-JCB-packages-to-the-JCB-Communty-Directory.md +++ b/062-Add-your-own-JCB-packages-to-the-JCB-Communty-Directory.md @@ -1 +1,56 @@ -I want to demonstrate The way to add JCB packages to the community Directory The moment if you go to import JCB packages this now in new tab called community Packages Where we would like to encourage all of you to start sharing packages Main focus or purpose for it would become To be 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 too easily Pull on old Packages that you've developed To maybe have a specific feature for example Linking your Joomla users into your component I know apps or componants that does that And I often want to reuse that So [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 I without merging it with The old version But actually creating a new Component including Fields and everything else And so that way You are able to quickly start a new project And you don't need to really do all that over again and again [00:01:17](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) It's sort of similar as the Clone feature that now has become available so they JCB components now Clone feature You could select a component And you can clone it And in cloning it It basically creates A Exact Copy of the component But not linked To the components so even did admin views You see it actually create a new admin View [00:01:44](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) And the same goes for the fields You actually created a whole new set of fields Specifically For this component you see it's got the same Suffix (EO) Ok so That is the Clone feature and now the import feature has the same functionality [00:02:05](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m05s) So if I was to go and say let's import The demo component Then Once it has gotten the component from GitHub We will see That it has this merge option or no don't merge now Remember we Already have the demo component here and it is exactly the same component But I don't 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 really Bring it in as a new component and then I will detect this to No and it does give you a little explanation here and also tells you that the paradation rules Field types snippet languages and language strings These things will still be merged And that simply is unavoidable Ok and then if you wanna see You know what happens on the hood And then you click on continue And what it will do now [00:03:03](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m03s) Obviously give you a whole lot of information of the import And also whatever files it moved But it actually created a new component It didn't update the old one And that is a very nice option because now You can quickly start with this component without affecting this one Now you'll see that Even the admin view is Dislocated it's not the same admin View The same again with the fields so if we look at the fields you'll see it also has the (Ra) [00:03:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) Suffix to it (Ra) (Ra) This name doesn't anywhere appear In the compiled version of the components it's all system names So this (Ra) will just be for your own to know that this Field belongs to this component and so on So that's sort of what the new JCB package import option is sort of been improved to to manage Now with the community option You can actually do what we wanna call [00:04:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m07s) What is a share Like I've been doing Sharing So many in a lot of information with all of you Components tools And so 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 And at the same time maybe get some marketing This is also gonna be doing that [00:04:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m33s) Ok, so let me illustrate to you the process of getting a package into the community Packages We are going to use GitHub Basically 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'm not gonna teach you how to use GitHub neither how to use Git I'm gonna illustrate it just by doing it Doing what you need to do Demonstrating it to you But I'm not gonna teach you how to do this in a More thorough away So you need to Go and study up GitHub [00:05:22](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m22s) And Git Specifically to be able to manage this And what will happen is anyone who wants to add a package must start by forking The repository And then once it's been forced 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 [00:05:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m53s) Of This JCB community packages And then once they done all that and pushed up the changes to their repository Then they'll make a pull request To add the change Into the community Version of this repository now Hope that all makes sense to you You'll get the URL here [00:06:14](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m14s) On your own repository Copy that And then you'll go to your Developing environment Hopefully It will be Linux Because you need to Run a bash script, so Needs to be a bash environment And [00:06:32](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m32s) Yeah so you could run it in a VM where ever you want Just get it going so I'm gonna open a terminal now And then the terminal I'm simply gonna clone this repository And then once it's finished cloning it we gonna change to that directory Now 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) So it is actually a folder a folder on your computer And we will then now need to go to JCB Extract the package you want to share And simply place it into this folder And then Run This hash.sh script Ok So let me do that So here 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 and I would 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 But 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 anyone share it Does need to be a big component it could have just one View Doesn't matter But it needs to be something other than already what exist So 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 So Always please check that if you wanna contribute something 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 But just know that we will have to be able to test it So if you're using a key Then the person that you get it from [00:08:42](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m42s) You can't Contributed without a key Back in fact If someone places A package in the Community And has a key Then it sort of 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) But as soon as I take the key away Then everybody else can improve it because there is no key And doesn't matter we all can check it out Ok So I'm not exactly sure how all this is gonna 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 [00:09:26](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m26s) That's really the agenda The idea is if you wanna build a project let's get something that can sort of serve as a base From which to start so this question and answers Program is there is a very nice base it's got just Few views a few fields It's got a very simple straight forward implementation of Q&A for your front in of your website And so I thought well this is a nice thing to to sort of use As a demonstration [00:09:55](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m55s) So I'm gonna export this Wait a minute let me just show you something else before we do that Is going to the component And those of you who want to maybe give away the component But you want to sort of have people first visit Maybe a video that you've made The way you could do this Is by this Buy Link here you'll basically make that link [00:10:23](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m23s) Direct to your video So that when they click on the Buy Link they go to the video Were you gonna give them the key for free And they can Watch the video get the key come back and open the package we're not currently Already 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 it's sort of yeah we don't need it So we left it here maybe for future purposes But at the moment we don't need it the way we've set up things You can sort of just use the repo URL So 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 So the other idea is not add a key at all So If you don't add a key here 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 just Leaving the key out That's simple as that And Then it will be a free package Where as if you leave the key in then people will have to get the key from you And if you've got a contributor to the community Then 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) So they can validate the component and check that it's safe for distribution We'll stop with 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 For now the explanation is simple if you want to have people get the key from you Where ever they need to get it weather it's free or paid Needs to be this link here And [00:12:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m15s) The key This here is what we used to build the key it's not the actual key It's just used to build a key so you can put in anything here really Ok Now once you got all that in place You will compile your component Or export the JCB package really that's the right name once you got the component Exported Then the package is available [00:12:41](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m41s) in a specific Directory called "temporal directory" in your Developing environment And this is the package That you wanna add to the repository This is the key that you now need to give to everybody That wants to use the package So this 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 this 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 this The Next Step would be to now move this package into The Repository which we cloned down to your local developing environment Here I got the folder open where the package is so you see there Is following that path which we found [00:13:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m35s) When we look at this it's same path So basically we gonna just drag And drop The file into the other folder which is where that Clone repository is at the moment In my home folder So here we have The package been added And We basically done [00:13:56](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m56s) And we can close this one out And go back to the terminal Once in a terminal if you say get Status You see that it tells you that is one file That isn't been tracked Now before you add the file You first need to run The hash.sha [00:14:20](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m20s) ... program Which is a bash little script So you need bash to run it and a few other two other programs actually I'm pretty sure you that It's this JQ and sha1sum These two programs is also required And that the script will actually shout at you that if it doesn't exist will say hey , you need to get these [00:14:48](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m48s) So if you You can just Google JQ Bash Install and it will Give you information And adding these two programs to your Developing environment And then run that script What that script will do [00:15:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m02s) is very simple it'll go through the files in the repository that are zip files that's what it does here it will create a sum And then will place the sum In a file with the same name except Added the sha to the file name So there it adds it Then it will get a shop file name and then unzip The file to get the info. [00:15:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m28s) VDM file from the zip package Then change that to the shop filename Which should be the same as your package name just 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 So that's where that info come from Then it takes that information and It adds it to an array Which Then later gets written to the checksum.json That's all this does [00:15:55](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m55s) Nothing Not not no not smart really it's just straight forward Some Little Bash Do to get the information from the file For you without your having any issues And that it Just follow convention So I'm gonna go run the file now and you can see what it does So basically you add the the Dot here make sure in the repository then the Dot And then [00:16:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m21s) The hash.sh And enter and it should just do that simple as that Shouldn't take long and if it did Then something is wrong This is all it should do Now if you again do the git status You'll see that now there are actually 3 files That of not be tracked and tricks some file Has been modified And why because there is now a new line been added [00:16:49](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m49s) To check some so if we do Git diff You'll see that your component the one that you are adding This one Is being added And so that line was changed because it got a comma But this is the new line that it is added So basically just added your component To the check some [00:17:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m15s) And 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 Ok so There we go The next thing is to git Add Those files [00:17:34](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m34s) So if you do git Status They are now green now the comment The comment I think We there's like Convention out there I'm not so keyed up all that So the moment I think we can do Git [00:17:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m53s) Then Add it Questions and answers package I think that's simple enough And then Press enter Oops I left out something and it's to commit word So she say git commit Then a m The m is for the message in the a is for pushing it all into the branch So there we go and then you have if you have a pass phrase [00:18:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m21s) and you Which I should actually have Then there 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 Specially since we need to be sure That it is you That am you know making the commit Now when you've done all that you do git [00:18:49](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m49s) And your push it up To your repository on GitHub At this point you are still not affecting the community repository It is just affecting The the repository that you forked And That is This is a very secure way of dealing with this So if we now go back to Git Hub [00:19:11](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m11s) And you know were fetch the page You see that I'll say this branch is one commit ahead of VDM And then there is this make a pull request So you make a pull request there And it will basically take you To the main repository And all explain to you which one is being pulled where and it will tell you that it is able to be merged And Did this is the information that's being added For the info [00:19:40](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m40s) For the sha And obviously for the package which it doesn't show because it's too big So you see Binary file not shown there it is And so there is also the changes to the checksum Now at this point You need to Create a pull request to click on create pull request And This [00:20:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m02s) Comment that you made in your repository when you you know Contributed the package would usually be added as the title You wanna give a little explanation of things that we as the admin team need to have dissipate Because we got obviously have to test this now We can't add packages to the community packets branch without being able to test it So if you have a key for the package Then Yes I think we will create a form Eventually [00:20:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m35s) Where you will be able to submit that And we'll put that in the information because at the moment this area doesn't even have a pull request template So we will add a pull request template So that when you create a pull request that tells you where to send the key Set the moment if there's a pull request maybe just keep the packages coming that are free at the moment as soon as the templates in place then then you can use it And then make a pull request And Then I'm at the moment the only one that [00:21:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m07s) Manage this but I hope that others would get involved There are some other developers already Quite involved on the JCB Repository But I would like to also encourage them to get involved here And be able to sort of help me Test these packages Make sure that only valid in Stable packages gets Added [00:21:30](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m30s) And so That's really it here you now click create pull request now I'm gonna do this Because it's all premature I I want to I don't wanna pull this into this The repository at the stage I'm gonna do so later But the point is This is the procedure that you need to follow To actually 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 get merged into the master branch It will also become available on this page Automatically So automatically it'll show up in this dropdown In fact That is a simple as it is Well thanks for watching and if you have any questions please open a issue At the correct place So if you wanna talk about the packages for the community Open 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 you know clear Separation Between these two concepts. Ok thanks for watching. +# ADD YOUR OWN JCB PACKAGES TO THE JCB COMMUNITY DIRECTORY + + +### Import JCB Packages - New Tab Called Community Packages + +[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've 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 don't need to do all that over again and again. + +### The Clone Feature + +[00:01:17](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) + +It's 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 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 I was to go and say let's 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 don't 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. What it will do now, [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 didn't update the old one. That is a very nice option, because you can quickly start with this component without affecting this one. Now you'll see that even the admin view is dislocated, it's not the same admin View. The same again with the fields. If we look at the fields, you'll see it also has the (Ra) [00:03:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) Suffix to it. This name doesn't anywhere appear in the compiled version of the components, it's all system names. This (Ra) will just be for your own to know that this field belongs to this component and so on. That is what the new JCB Package Import option is 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 want to call share. Like I've 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'm 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'm going to illustrate it by doing what you need to do, demonstrating it to you. I'm not going to teach you how to do this in a more thorough way. 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's 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 [00:05:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m53s) of this JCB Community Packages. Once they have done all that and pushed up the changes to their repository, they'll make a pull request to add the change into the Community Version of this repository. Hope that all makes sense to you. You'll 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'll 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'm going to open a terminal. In the terminal I'm simply going to clone this repository. Once it's 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. + +### 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. + +### 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 add a key at all. So If you don't add a key here 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 just Leaving the key out. That's simple as that. And Then it will be a free package Where as if you leave the key in then people will have to get the key from you And if you've got a contributor to the community Then 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) So they can validate the component and check that it's safe for distribution We'll stop with 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 For now the explanation is simple if you want to have people get the key from you Where ever they need to get it weather it's free or paid Needs to be this link here And [00:12:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m15s) The key This here is what we used to build the key it's not the actual key It's just used to build a key so you can put in anything here really Ok Now once you got all that in place You will compile your component Or export the JCB package really that's the right name once you got the component Exported Then the package is available [00:12:41](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m41s) in a specific Directory called "temporal directory" in your Developing environment And this is the package That you wanna add to the repository This is the key that you now need to give to everybody That wants to use the package So this 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 this 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 this The Next Step would be to now move this package into The Repository which we cloned down to your local developing environment Here I got the folder open where the package is so you see there Is following that path which we found [00:13:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m35s) When we look at this it's same path So basically we gonna just drag And drop The file into the other folder which is where that Clone repository is at the moment In my home folder So here we have The package been added And We basically done [00:13:56](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m56s) And we can close this one out And go back to the terminal Once in a terminal if you say get Status You see that it tells you that is one file That isn't been tracked Now before you add the file You first need to run The hash.sha [00:14:20](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m20s) ... program Which is a bash little script So you need bash to run it and a few other two other programs actually I'm pretty sure you that It's this JQ and sha1sum These two programs is also required And that the script will actually shout at you that if it doesn't exist will say hey , you need to get these [00:14:48](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m48s) So if you You can just Google JQ Bash Install and it will Give you information And adding these two programs to your Developing environment And then run that script What that script will do [00:15:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m02s) is very simple it'll go through the files in the repository that are zip files that's what it does here it will create a sum And then will place the sum In a file with the same name except Added the sha to the file name So there it adds it Then it will get a shop file name and then unzip The file to get the info. [00:15:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m28s) VDM file from the zip package Then change that to the shop filename Which should be the same as your package name just 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 So that's where that info come from Then it takes that information and It adds it to an array Which Then later gets written to the checksum.json That's all this does [00:15:55](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m55s) Nothing Not not no not smart really it's just straight forward Some Little Bash Do to get the information from the file For you without your having any issues And that it Just follow convention So I'm gonna go run the file now and you can see what it does So basically you add the the Dot here make sure in the repository then the Dot And then [00:16:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m21s) The hash.sh And enter and it should just do that simple as that Shouldn't take long and if it did Then something is wrong This is all it should do Now if you again do the git status You'll see that now there are actually 3 files That of not be tracked and tricks some file Has been modified And why because there is now a new line been added [00:16:49](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m49s) To check some so if we do Git diff You'll see that your component the one that you are adding This one Is being added And so that line was changed because it got a comma But this is the new line that it is added So basically just added your component To the check some [00:17:15](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m15s) And 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 Ok so There we go The next thing is to git Add Those files [00:17:34](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m34s) So if you do git Status They are now green now the comment The comment I think We there's like Convention out there I'm not so keyed up all that So the moment I think we can do Git [00:17:53](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m53s) Then Add it Questions and answers package I think that's simple enough And then Press enter Oops I left out something and it's to commit word So she say git commit Then a m The m is for the message in the a is for pushing it all into the branch So there we go and then you have if you have a pass phrase [00:18:21](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m21s) and you Which I should actually have Then there 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 Specially since we need to be sure That it is you That am you know making the commit Now when you've done all that you do git [00:18:49](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m49s) And your push it up To your repository on GitHub At this point you are still not affecting the community repository It is just affecting The the repository that you forked And That is This is a very secure way of dealing with this So if we now go back to Git Hub [00:19:11](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m11s) And you know were fetch the page You see that I'll say this branch is one commit ahead of VDM And then there is this make a pull request So you make a pull request there And it will basically take you To the main repository And all explain to you which one is being pulled where and it will tell you that it is able to be merged And Did this is the information that's being added For the info [00:19:40](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m40s) For the sha And obviously for the package which it doesn't show because it's too big So you see Binary file not shown there it is And so there is also the changes to the checksum Now at this point You need to Create a pull request to click on create pull request And This [00:20:02](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m02s) Comment that you made in your repository when you you know Contributed the package would usually be added as the title You wanna give a little explanation of things that we as the admin team need to have dissipate Because we got obviously have to test this now We can't add packages to the community packets branch without being able to test it So if you have a key for the package Then Yes I think we will create a form Eventually [00:20:35](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m35s) Where you will be able to submit that And we'll put that in the information because at the moment this area doesn't even have a pull request template So we will add a pull request template So that when you create a pull request that tells you where to send the key Set the moment if there's a pull request maybe just keep the packages coming that are free at the moment as soon as the templates in place then then you can use it And then make a pull request And Then I'm at the moment the only one that [00:21:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m07s) Manage this but I hope that others would get involved There are some other developers already Quite involved on the JCB Repository But I would like to also encourage them to get involved here And be able to sort of help me Test these packages Make sure that only valid in Stable packages gets Added [00:21:30](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m30s) And so That's really it here you now click create pull request now I'm gonna do this Because it's all premature I I want to I don't wanna pull this into this The repository at the stage I'm gonna do so later But the point is This is the procedure that you need to follow To actually 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 get merged into the master branch It will also become available on this page Automatically So automatically it'll show up in this dropdown In fact That is a simple as it is Well thanks for watching and if you have any questions please open a issue At the correct place So if you wanna talk about the packages for the community Open 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 you know clear Separation Between these two concepts. Ok thanks for watching.