Skip to content

compatibility: different load options may be applied when loading hub and new hub #22

@Kybxd

Description

@Kybxd
func (h *Hub) CheckCompatibility(dir, newDir string, format format.Format, options ...Option) error {
	opts := ParseOptions(options...)
	// load new hub
	loadErr := h.load(loadTypeNew, opts.ProtoPackage, newDir, format, opts.LoadOptions...)
	if loadErr != nil && !opts.SkipLoadErrors {
		return loadErr
	}
	newHub := tableau.NewHub()
	newHub.SetMessagerMap(h.GetMessagerMap())
	// load hub
	loadErr1 := h.load(loadTypeOld, opts.ProtoPackage, dir, format, opts.LoadOptions...)
	if loadErr1 != nil && !opts.SkipLoadErrors {
		return loadErr1
	}
	checkErr := h.checkCompatibility(newHub, opts.ProtoPackage, opts.BreakFailedCount)
	return errors.Join(loadErr, loadErr1, checkErr)
}

The generated golang code only parses one opts and applies it to both hub and new hub. However users may want to apply different options to different hubs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions