You do not have to use "src" or "repository" - you can store your packages directly in the root if you like. You are free to choose. But over time it can "bloat" the topmost level of your project with the Smalltalk packages folders and it might get confusing the more packages you have or the more other stuff you add to your project.
Often it depends on personal style or the complexity of the overall contents of the project. Having the code directly in the root is possible but not a good style or to be recommended - because often projects include more than just the source code and over time include more and more things like docu or other. Thats why usually projects are STRUCTURED with subdirectories and these subfolders helping you or a user of your project to easily find out about what to expect as contents. Some possible subdirectories you might find in one or the other projects are: root (Project root dir) !- src - for source code and source packages !- bin - for built binaries or executables !- doc - for documentation, sometimes also "docs" !- www - for web related stuff that is served via HTTP/webserver ! !-- css - for stylesheets ! !-- js - for javascript scripts ! !- templates - for templates !- include - includes (for instance in C/C++ projects) !- lib - for libraries !- test - for tests or test drivers !- third_party - for third party stuff (that is required to run the project) !- ci - for CI related scripts or other !- docker - for docker !- media - for video, pictures or other related project media !- benchmark - for speed tests and benchmarks !- config - for configurations !- etc - for anything else !- ... This is not a complete list and different people prefer a different project layout. There might be other subfolders. Often the name varies depending on language or framework. Also some build technologies enforce a specific layout. For example if you work with web applications you often have a layout as described in [1], with Java software like maven you usually have no "bin" but a "target" folder, see [2]. There never was an agreement of a layout that fits all the needs - so we can only speak about a "typical folder structure". Same for files. As files in the root folder I "typically" would expect only a few files: - a README.txt or README.md - a license file - config files for build systems (like pom.xml for Maven, package.json in NodeJs/npm, Gruntfile.js for Grunt, bower.json for bower, ...) - a .travis.yml for travis builds - ... A "src" or "source" subdir is very often used to host the code. Thats why the Iceberg dialog just allows to tell in which subfolder of the project Iceberg will find the code if you structure your project with such a layout. If you leave it blank all packages are expected in the root folder. So you can either put the packages directly into the root like in https://github.com/astares/iceberg or have a "src" subdirectory or other as in https://github.com/pharo-project/pharo or many of the other Pharo or non-Pharo projects on GitHub. Hope this explains it. Bye T. [1] https://www.sohamkamani.com/blog/2015/08/21/frontend/ [2] https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html > Gesendet: Dienstag, 28. November 2017 um 20:25 Uhr > Von: stephan <step...@stack.nl> > An: pharo-dev@lists.pharo.org > Betreff: Re: [Pharo-dev] Iceberg workflow > > On 28-11-17 19:40, Torsten Bergmann wrote: > > 2c) Code subdirectory: enter "src" here !!! > > Do we really need that? Why would I care about that? > > Stephan > > >