code: public static boolean canUpdate(Version from, Version to) {
          final Field mostSpecificMatchingField = getMostSpecificMatchingField(from, to);
          switch (mostSpecificMatchingField) {
              case LOCAL:
                  {
                      return true;
                  }
              case PATCH:
              case MINOR:
                  {
                      return from.isBefore(to);
                  }
              default:
                  {
                      return false;
                  }
          }
      }
docs: Determine if an "update" can be done between the from and to versions. The ability to update
  is defined as from == to OR (from.isBefore(to) AND mostSpecificMatchingField in (PATCH,
  MINOR))
  
  @param from Version updating from
  @param to Version updating to
  @return true if the major and minor versions match and the from.patch value is less than or
  equal to the to.patch value