Refactoring #1497

Feature #1290: === Core: framework ===

Agree on new Core directory structure and class renaming to Rename certain classes and methods.

Added by pospelov over 4 years ago. Updated over 4 years ago.

Status:RejectedStart date:01 Jul 2016
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:Sprint32

Description

Within this item we have to agree on

  • new Core directory structure (how to split, new directory names)
    • Joachim's suggestion on new Core structure is a good starting point
  • exact list of classes which should be renamed, and their new names
    • also including form factors names

When we have a settled list, someone will create an issue and make the renaming in one go.

To my opinion it is important that

  • this activity should not be smeared over time
    • there should be well defined moment in time, when it begins, and when it ends
  • this activity should not be mixed with another refactoring (like moving class methods around, method renaming here-and-there, change of parametrisation etc).
  • it should be done in dedicated branch without mixing with unrelated commits
  • we should plan it so well, to not to return to the subject month later.

Another suggestion is that the actual implementation should be done only after our continuous integration procedure is fully settled, i.e.

  • we have nightly builds on Windows, MacOS and Linux
    • including automatic generation of windows/macos installers
  • we have automatic tests of user examples too
  • our project should be already migrated to github/gitlab
BornAgain IsGISAXS FitGISAXS Rename
AnisoPyramid AnisoPyramid
Box Parallelepiped, Box
Cone Cone
Cone6 Cone6
Cuboctahedron Cuboctahedron
Cylinder Cylinder Cylinder
Capsule
EllipsoidalCylinder EllipsoidalCylinder
FullSphere FullSphere --> Sphere
FullSpheroid FullSpheroid Spheroid --> Spheroid
HemiEllipsoid HemiEllipsoid
Ellipsoid
Hemispheroid
Prism3 Prims3 Prism
Prism6 Prism6
Pyramid Pyramid
Ripple1 Ripple1 --> CosineRipple
Ripple2 Ripple2 --> TriangularRipple
Tetrahedron Tetrahedron TruncatedTethrahedron --> TruncatedTethrahedron
TruncatedCube --> FacettedCube
TruncatedSphere Sphere TruncatedSphere
TruncatedSpheroid Spheroid
FacettedSphere (#1)
FacettedSphere (diff from #1)
Icosahedron
Dodecahedron

Directory Structure

./Sample
./FormFactors
./InterferenceFunctions
./Instrument
./InputOuput
./StandardSamples
./TestMachinery
./Basics
./Geometry
./Materials

History

#1 Updated by herck over 4 years ago

I fully agree that these type of tasks should wait until we have a reasonably good working CI and nightly build procedure.
This also applies for any refactoring that is not just a local adaptation/extension of code.

#2 Updated by pospelov over 4 years ago

  • Status changed from Backlog to Rfc
  • Target version set to Sprint32

#3 Updated by pospelov over 4 years ago

  • Description updated (diff)
  • Status changed from Rfc to Sprint

#4 Updated by wuttke over 4 years ago

  • Parent task set to #1290

#5 Updated by wuttke over 4 years ago

  • Subject changed from Agree on new Core directory structure and class renaming to Rename certain classes and methods.

"directory structure" taken out of the title of this issue; if you want, reopen as a separate issue.

A good directory structure can be of some help in analyzing the code, and facilitates usage of a conventional text editor. Besides that it has no further implications (unless we talk about migrating Fit/ to a separate library); in particular, it does not affect the user API.

In contrast, changed class and method names will be visible to users, and will break the API, unless backward compatibility is ensured by extra efforts. So these changes indeed do need careful preparation.

#6 Updated by wuttke over 4 years ago

  • Subject changed from Rename certain classes and methods. to Agree on new Core directory structure and class renaming to Rename certain classes and methods.
  • Status changed from Sprint to Rejected

Perhaps it is cleaner to reject this issue, and to open a new issue specifically about the class&method renaming, using input from above.

Also available in: Atom PDF