Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate non-{start,status,stop} commands #296

Closed
wants to merge 1 commit into from

Conversation

gregakinman
Copy link
Contributor

@gregakinman gregakinman commented Jun 21, 2018

cc @cbrockington @iamdanfox

I want to see what the proper route is for deprecating these commands. I'm thinking:

  • add these echos for due diligence (though in this day and age, humans should generally not be running these commands, though I don't know what the large internal product is doing in this regard)
  • calling this out in changelog for release that includes this deprecation
  • email
  • search for usages of these and follow up individually with products using them to lessen impact of their removal

(Also, restart is potentially still includable, though I initially left it out from the perspective of ruthless spec-adherence, there's no concept of instantaneous restarts in the spec and status is easily replaceable on the client-side with stop && start, which, as a sidenote, is probably how the current command should be anyway, as it currently will still issue a start again even if stop fails, small edge case)

@gregakinman gregakinman requested a review from a team as a code owner June 21, 2018 19:56
@cbrockington
Copy link
Contributor

The only other potential step to add is before completely removing the commands, setting the commands to echo the fact they have been removed and exit 1 / some other error code.

I do find this to be overly optimistic

add these echos for due diligence (though in this day and age, humans should generally not be running these commands, though I don't know what the large internal product is doing in this regard)

while that world would be nice, there will definitely be some who currently rely on the additional functionality (particularly for debugging), so while I don't think everything should be held back by them, I think it's reasonable to expect that this will ruffle some feathers.

@gregakinman
Copy link
Contributor Author

@iamdanfox thoughts?

@cbrockington
Copy link
Contributor

Other than console I also somewhat still don't understand the need for the deprecation. Restart can be left in exactly as is, and check would be trivial to add to go-init as long as the underlying start function had the launcher config location as a param.

I appreciate I'm somewhat harping on about ways to avoid the deprecation, but it's because I still feel the deprecation is very hard to effectively communicate (since it's all bash, and as we mentioned before, there is no compilation / checking against bash APIs), so I consider avoiding changes there if possible to be pretty valuable.

@gregakinman
Copy link
Contributor Author

There's no "need" for deprecation per se, but I think the deprecation is just better/nicer. The mentality here is to support only what the SLS spec requires, since any deployment infrastructure managing SLS services will only be running commands dictated by the SLS spec, since those are the only things that are guaranteed to be present in an SLS service. Therefore, the only things running console, restart, and check are humans or custom scripts. console is explicitly for humans so should go away, restart seems like it would only be a convenience for a human to not have to do stop+start, and check doesn't even work and has already been marked for deprecation: #261.

The deprecation is hard to communicate, yes, but as noted above, comes with the expectation that we will do due diligence to seek out uses of these and notify them. The removal of them will be pretty easy to communicate, though, since it will come with a major version bump.

@cbrockington
Copy link
Contributor

Since there is no need for it, can we focus on doing other work instead then?

@gregakinman
Copy link
Contributor Author

I think it's better to take this opportunity to remove some not-needed functionality rather than implement it in go-init (however easy it may be) just to support backcompat, especially when we don't deem the functionality necessary or in line with the trajectory of how our software is being managed. Just because something isn't necessary to do doesn't mean we shouldn't do it.

@cbrockington
Copy link
Contributor

I doesn't mean it shouldn't ever be done, it does mean we shouldn't do it now. All the functions we don't want to implement in go-init can be left as they are, and we can push forward with other work.

Happy for us to create an issue tracking eventual deprecation of things don't need, but as a P3 or 4, not something we should be spending time on now.

If the tests were already working then I see no problem with merging this since the work is already done now, but given they aren't, I feel it would be more prudent to focus on things which directly and more immediately impact what we are trying to achieve. (there is an internal burndown list for this).

@gregakinman
Copy link
Contributor Author

Closing in lieu of #306

@gregakinman gregakinman deleted the patch-1 branch July 18, 2018 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants