HACKER Q&A
📣 jhullse

What Is the “Core” Package?


There are so many softwares, languages and frameworks that have the so called "core". This is something that I struggle for a while because to me it's not that clear what should be considered the core. When do we need to create a core package? Do we even need a core package? What should it contain? What do you guys think?


  👤 jolmg Accepted Answer ✓
> What should it contain?

For a given subset of features of a project, would you consider the project broken and unusable if you remove it? If yes, it's part of core, else it's not and can probably be extracted into a separate package.

> When do we need to create a core package? Do we even need a core package?

That depends on the project. I'd make a core package if the project is big enough that you can split it into modular parts that can be extracted without breaking basic functionality. You also have to ask yourself if it's worth it. I think it is when you otherwise have people installing a big package to only use a small part of it.

Well, that's regarding packages and its benefit to users. Having a well-defined core (via packages, modules, source files or directories) is helpful in the sense of making the code easier to understand and modify.