afawcett / apex-toolingapi

Apex wrapper for the Salesforce Tooling API
BSD 3-Clause "New" or "Revised" License
134 stars 98 forks source link

Reason for layout of project folder structure #14

Closed ImJohnMDaniel closed 10 years ago

ImJohnMDaniel commented 10 years ago

@afawcett and @dancinllama

I am curious about why the project folder structure for apex-toolingapi is setup the way it is. Specifically, what was the reason to check in the parent workspace folder of the project (i.e. "/apex-toolingapi") and subsequently all other project files are one folder level lower than normal? Is there an advantage to setting up the project this way that I am not recognizing?

Thanks for the info.

Cheers!

afawcett commented 10 years ago

It was originally to cater for Java and Force.com artefacts. Feel free to change if you want, so long as the history is maintained for the files this is cool with me.

ImJohnMDaniel commented 10 years ago

There were Java artifacts for this project? Really? I'd love to hear about what the plans were there sometime. "Oh, the possibilities are endless" ;-)

Personally, I would recommend proceeding with the change to the folder structure. It definitely makes IDE setup easier to manage.

The change of folder location would show a series of "git renames" for each of the files. The history for the file in the old location is still saved in the git repo overall, and direct comparisons of specific revisions of each file from before and after the change are possible. GIT can perform a diff between a file in one folder with a file in previous revision in another folder. If you wanted to compare the HEAD revision of /src/classes/ToolingAPI.cls with a previous revision of the file when it was located at /apex-toolingapi/src/classes/ToolingAPI.cls, you would need to perform the following type command:

git diff HEAD:src/classes/ToolingAPI.cls :apex-toolingapi/src/classes/ToolingAPI.cls

All that said, I do not want to have this folder change performed unless everyone involved is on board with it. @dancinllama - Do you have an opinion on this?

Please let me know if you have questions.

Cheers!

afawcett commented 10 years ago

Ah, sorry, i read your question to quickly, i thought you where talking about the Apex UML project. I think this was a case of my just adding the wrong folder to what i think most people seem to expect. Eitherway I still don't mind if we want to change it and yes agree in the context of Tooling API, lets see what @dancinllama thinks! :+1:

dancinllama commented 10 years ago

Im in agreement, I think the root folder should have "src/classes" instead of "apex-tooliongapi/src/class" it flows better with typical git workflows in my opinion. Also, should we look at spinning up a dev org we can all share?

ImJohnMDaniel commented 10 years ago

@dancinllama - thanks for the response. I will make the changes to the project structure sometime today.

Regarding your comment about spinning up a dev org to share, I would say no. The reasons are:

Thoughts?

afawcett commented 10 years ago

I'm personally happy with co-ordinating via Git, not that i don't want to share a DE org, i just think we would end up treading on each others feet, especially given sometimes we can overlap working windows. So i tend to refresh from Git, perform a Compile in MavensMate, make edits and commit often.

afawcett commented 10 years ago

Oops mised @JohnDTheMaven comment above, yes totally agree.