Chapter 2. Package Structure
This chapter will start you on the road to package development by showing you how to create your first package. You’ll also learn about the various states a package can be in, including what happens when you install a package. Finally, you’ll learn about the difference between a package and a library and why you should care.
Naming Your Package
“There are only two hard things in computer science: cache invalidation and naming things.”
Before you can create your first package, you need to come up with a name for it. I think this is the hardest part of creating a package! (Not least because devtools can’t automate it for you.)
Requirements for a Name
There are three formal requirements: the name can only consist of letters, numbers, and periods (i.e.,
.); it must start with a letter; and it cannot end with a period. Unfortunately, this means you can’t use either hyphens or underscores (i.e.,
_) in your package name. I recommend against using periods in package names because it has confusing connotations (i.e., file extension or S3 method).
Strategies for Creating a Name
If you’re planning on releasing your package, I think it’s worth spending a few minutes to come up with a good name. Here are some recommendations for how to go about it:
Choose a unique name that can easily be Googled. This makes it easy for potential users to find your package (and associated resources) and for you to see who’s using it. You can also check ...