Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Kristin Whetstone
@kwhetstone
Which is why I thought a --useLatest flag (or some sort of config) would be a great for the other case
Martin d'Anjou
@martinda
Do you mean --use-latest instead of having to explicitely say latest for every plugin?
Kristin Whetstone
@kwhetstone
no --use-latest for downloading the latest versions of the dependencies of a plugin with version latest
The other main usecase of the tool is going to be someone saying generically "I want these plugins installed" and they might not care about versions, so they're going to just want behavior similar to how Jenkins calculates plugin dependencies today
Martin d'Anjou
@martinda
I do not know how Jenkins calculates dependencies today... does it ignore dependencies versions? Like if I ask for plugin-a:1.1.0, does it use 1.1.0 version for plugin-a with "latest" for its dependencies, or does it use the dependency versions as specified by plugin-a:1.1.0's pom.xml ?
Kristin Whetstone
@kwhetstone
Jenkins takes the latest version of everything, it doesn't respect you requesting plugin versions
Kristin Whetstone
@kwhetstone
So since in this tool, the focus has been on specific versions of plugins, I think it makes sense to download latest for dependencies of latest as an option, not the default
Natasha Stopa
@stopalopa
Ok, so it seems like we all agree that users want both the ability to control which plugins get installed as well also having the ability to get all of the latest of the plugins they specify and the dependencies if they - the disagreement is about what the default should be. I’m not sure how to make a decision. Take a vote? Reach out to the dev mailing list?
Kristin Whetstone
@kwhetstone
I'd use a flag. Let's keep it from getting too complicated. We can all vote here; give the people who have been involved early on some preference :)
Natasha Stopa
@stopalopa
It sounded like @casz wanted getting the latest dependencies to be the default and have a flag only if a user didn’t want that. Opinions @martinda, @timja, @slide or anyone else?
Alex Earl
@slide
If not specified explicitly, I would say get latest
Natasha Stopa
@stopalopa
other question about presentations from earlier - Oleg asked about the state of the library and how ready it is to be incorporated into areas. Do you guys think it looks ok or are the other things that I would need to do for that to make sure the right apis are exposed?
Kristin Whetstone
@kwhetstone
From what i could tell, the question was about making sure that the library module is separate from the CLI. Which exists as it's own separate module without any external interface today
Natasha Stopa
@stopalopa
ok. I think I interpretted it more of as a question about what methods were exposed
Kristin Whetstone
@kwhetstone
Alright, then let's look at the PluginManager class. The main thing someone would have to do to use the PluginManager is fill in a PluginConfig. Since that's using a Builder, you should be able to use the class with only defaults with just:
PluginManager pm = new PluginManger(Config.Builder.build()); // fill in additional info here
right?
The only part that could potentially be an issue is if you're in an environment where you can't write a file. Double checking to make sure the config doesn't require it for situations where you are only printing the information.
Also printing: instead of the end result being printed, I can imagine that some places might want the values returned in an array.
(map.... data structure)
Natasha Stopa
@stopalopa
oohh, on the note of not wanting to print things, we never did finish the logging PR
Kristin Whetstone
@kwhetstone
...yeah...
Natasha Stopa
@stopalopa
@kwhetstone I just changed a few more things for the project page based on some of the previous feedback: jenkins-infra/jenkins.io#2441
Do you want to take a look? As soon as that’s merged in, I will include the link in part I have to do for the final evaluation
Kristin Whetstone
@kwhetstone
Sure, I'll take a look
I think Jesse's comments about using his alternative hack for install-plugins.sh plays into the discussion about what versions of the plugins are installed by default
Using this tool to set up testing environments with consistent versions of plugins is very helpful
Natasha Stopa
@stopalopa
oh yes, definitely :) I was just about to respond to him and get his feedback
Kristin Whetstone
@kwhetstone
yay!
+1 for the GSoC team creating Meetup events, that's great!
Kristin Whetstone
@kwhetstone
It looks good. I'm a bit bummed that we weren't able to get v1 cut today
Sometimes I can be incredibly optimistic about deadlines :)
Natasha Stopa
@stopalopa
it’s not too late! I wanted to try to do it before the presentation but I also didn’t want to have to deal with all of the scramble right before presenting if it didn’t work right. I did fix everything last night that we agreed we wanted to be included in that release, I guess the question now is if we should include any of these additional things we’ve been talking about - the —latest (or —explicit-dependencies) flag, logging, ….?
Kristin Whetstone
@kwhetstone
For sure! Right before a recorded presentation is not the time for yolo releases haha
The problem with the logging is we never figured out what the message to the console would be. Appending all the extra info about class made it very hard to read if just using from the command line
And really, it would have been much harder to deal with all the local testing if the logs continued to be hard to read
Natasha Stopa
@stopalopa
Yeah, I agree we never really came to a solution. That does seem like something that we probably have to figure out before the library could be incorporated in other places though?
Kristin Whetstone
@kwhetstone
They're going to want the logger.... the problem is keeping the cli readable. :/
Natasha Stopa
@stopalopa
That PR with the changes to my project page got merged in so speedily! The submission guidelines are here: https://developers.google.com/open-source/gsoc/help/work-product
Do you think I need to do anything to link to all the commits I did or do you think submitting the project page is enough since they should be able to find all of that in the repository?
Kristin Whetstone
@kwhetstone
I'm down the logger/cli print statement hole again!
I think things like doing commits are more for if you were working on making changes to the project itself. Like if you were making changes in Jenkins core, then you'd want to link to all commits you made there. I think since you stood up a whole new project, a link to that is enough. Let's double check on the gsoc-sig page.
Joseph Petersen
@jetersen
@stopalopa I have a very good use case for when I want latest... I always want the latest blue ocean... Doesn't matter but the problem is blue ocean has such a huge dependency tree and usually they aren't that up to date. I would hate to have redundant entries for all blue ocean dependencies to just say I want the latest of blue ocean.
Joseph Petersen
@jetersen
what if you could use the .yaml file to provide conditions instead of only being cli based?
so you could have downloadStrategy: latest or something :sweat:
or configure the logger from a yaml structure?
Martin d'Anjou
@martinda
@stopalopa Just saw your ping. Sounds like there are two modes that people want the most: latest of everything, and at the opposite end of the spectrum, reproducibility through immutable dependencies. I think you are trying to answer the question of what should the default behavior be. For that I do not really care, IMO because it's new tool you can make the default whaterver you or others want, as long as both modes are available. In principle in the reproducible mode of operation, I should only have to list the top plugins versions and transitive dependencies should always be the same no matter when I run the tool. I hope I make sense. Thanks a lot.
Kristin Whetstone
@kwhetstone
Yeah, I think that taking a param for determining that you want to use the latest download strategy is advisable. It doesn't change current behavior, and it can be added after doing a release.
Kristin Whetstone
@kwhetstone
For some reason I was thinking the tool already read config options from a file, but it doesn't, and that's a good ticket
Joseph Petersen
@jetersen
@kwhetstone @stopalopa I think one way to solve all of this is using a Lock file
I would very much like to just use latest and have a lock file generated I can commit into the repo :)
And I can in my plugins file always say I want to use git plugin 2.7.3 and the rest could be latest but I then ask plugin tool to generate my lock file which I can decide if it is too aggressive and dial it in to my needs and commit it to git and have plugin installer use the lock file :)
Natasha Stopa
@stopalopa
@kwhetstone Are we meeting today?
Kristin Whetstone
@kwhetstone
@stopalopa we can if you want to talk about anything in regards to wrapping up the project. Everything had to be submitted to Google already, so there's not much left to do at this point