Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split code into core and submodules for non-core code #3

Open
ctadlock opened this issue May 18, 2020 · 9 comments
Open

Split code into core and submodules for non-core code #3

ctadlock opened this issue May 18, 2020 · 9 comments
Assignees
Labels
devops Project, build, packaging, deployment... new Something that does not exist yet priority::high High priority question A question needs answering refactor A change to something existing
Milestone

Comments

@ctadlock
Copy link
Collaborator

ctadlock commented May 18, 2020

Going to move the following out of core:

  • json
  • rest/http

The resulting folder structure will be:

  • / (README.md, CHANGELOG.md, LICENSE)
  • src/ (parent folder for all source)
  • src/tornadofx2 (tornadofx2 core; root for pom.xml)
  • src/tornadofx2/src (tornadofx2 core; code)
  • src/tornadofx2-json (json extensions; root for pom.xml)
  • src/tornadofx2-json/src (json extensions; code)
  • src/tornadofx2-rest (rest extensions; root for pom.xml)
  • src/tornadofx2-rest/src (rest extensions; code)
  • docs/ root for documentation
@ctadlock ctadlock added this to the 2.0 milestone May 18, 2020
@ctadlock ctadlock self-assigned this May 18, 2020
@ctadlock ctadlock added refactor A change to something existing devops Project, build, packaging, deployment... priority::high High priority labels May 18, 2020
@ctadlock ctadlock added the new Something that does not exist yet label May 18, 2020
@ruckustboom
Copy link
Collaborator

ruckustboom commented May 18, 2020

If I can add my $0.02, I'm not a fan of the /src/ directory. I prefer either having the different modules at root (very common, e.g. Spring)

  • /tornadofx2-core/ (or tornadofx2-base, I'm not a fan of just tornadofx2)
  • /tornadofx2-rest/
  • /tornadofx2-.../
  • /docs/
  • etc.

Or, if a directory is desired, use /modules/ (less common, but not rare, e.g. JavaFX).

  • /modules/tornadofx2-core/
  • /modules/tornadofx2-rest/
  • /modules/tornadofx2-.../
  • /docs/
  • etc.

I think the /src/[module]/src/ construct is quite strange.

@edvin
Copy link
Owner

edvin commented May 18, 2020

Those two options were my preference as well. @ctadlock - if we put all modules on /, we still get all the modules as siblings, and we can still have a docs folder on the same level. Do you have a problem with that/do you see any issues with it?

@ctadlock
Copy link
Collaborator Author

ctadlock commented May 19, 2020

Ya, no plan survives first contact with battle.... I spent a while playing with Maven's multi-module projects and it requires a different structure than what I had proposed. You cant have the parent module be named the same as a submodule; so the parent can be named tornadofx2 and the submodule for "core" also named tornadofx2.

I'm fine not having a src folder at root. It works well for my company but not going to die on that hill here. Doesn't cause an issue with docs.

I renamed rest to web to make it a bit more generic for any rest/http/web related code.

I tested it with IntelliJ and it opens up great just using the "open project" function.
Here is what I came up with as a skeleton:

I created a skeleton project, you can download it on Dropbox. Didn't want to clutter GitHub.
https://www.dropbox.com/s/y1bbf9bdqnhiit2/tornadofx2.zip?dl=0

IntelliJ

image

File system

image

Parent pom.xml

image

@ctadlock
Copy link
Collaborator Author

ctadlock commented May 19, 2020

@edvin Another question for you.. we named this GitHub repository tornadofx2 because it needed a different name than the tornadofx one. Ok. However that doesn't mean we need to name the modules and artifacts within this repository tornadofx2. Our change to start off here with version 2.1 resolves the conflict.

So do you want the modules here to be named tornadofx or tornadofx2?

@edvin
Copy link
Owner

edvin commented May 19, 2020

This looks good! The modules can be named only tornadofx- IMO. Also, while we're knit picking - to me, web sounds like a folder for the project webpage. Perhaps http is a less ambiguous name for that module?

@ctadlock
Copy link
Collaborator Author

This looks good! The modules can be named only tornadofx- IMO. Also, while we're knit picking - to me, web sounds like a folder for the project webpage. Perhaps http is a less ambiguous name for that module?

Now is the time to nitpick. http is fine.

@SchweinchenFuntik
Copy link

Hello, status project ?

@JacekWicka
Copy link
Collaborator

After switching to gradle this cant be merged without a rework.
@ctadlock what is your schedule/planning?

@SchweinchenFuntik
Copy link

how do you look at adding kotlin and kotlin DSL contacts to avoid problems with scopes.

I can do this.

Is it better to do this in the new Github Projects?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devops Project, build, packaging, deployment... new Something that does not exist yet priority::high High priority question A question needs answering refactor A change to something existing
Projects
None yet
Development

No branches or pull requests

5 participants