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

Poll: tcWebHooks : what to support in the future #60

Open
netwolfuk opened this Issue Feb 14, 2017 · 17 comments

Comments

Projects
None yet
6 participants
@netwolfuk
Member

netwolfuk commented Feb 14, 2017

I am trying to determine how much effort I should invest in supporting older versions of TeamCity, and where to focus future development.

There are some new features if TeamCity 10 which I would like to migrate to, and I am wondering how many tcWebHooks users would be affected by discontinuing support for versions 9.x and below.

Also, how tcWebHooks is being used, and what payload formats are popular

Could you please add a comment to this issue indicating the following:

  1. TeamCity version and OS
  2. tcWebHooks major version: eg, 0.9 or 1.1
  3. If 1.1, are you using custom templates you've written yourself?
  4. What payload formats do you use?
  5. Are your endpoints internal to your company, external (eg, slack, hipchat, etc) or both.
  6. What's the best and/or worst thing about tcWebHooks?

Thanks, Net Wolf.

@netwolfuk netwolfuk changed the title from Poll: tcWebHooks support in the future to Poll: tcWebHooks : what to support in the future Feb 14, 2017

@mrinc

This comment has been minimized.

Show comment
Hide comment
@mrinc

mrinc Feb 15, 2017

Hey,

  1. 10 / Windows
  2. 0.9.8 (Would like to upgrade, but can only upgrade to a stable release)
  3. I'd like to but are awaiting 1.1
  4. JSON mainly, but as we can't push up to MatterMost with your plugin, its not being used as much.
  5. Yes
  • Best: Having freaking web hooks instead of having to poll TC!
  • Worst: Waiting for the stable release :D

In my opinion, I'd drop support for TC9 if there is substantial features available in TC10 so that the plugin is able to advance and be better rather than limiting it.
You can always branch for TC9 and just do bug fixes separately if really necessary for people still on TC9.

-M

mrinc commented Feb 15, 2017

Hey,

  1. 10 / Windows
  2. 0.9.8 (Would like to upgrade, but can only upgrade to a stable release)
  3. I'd like to but are awaiting 1.1
  4. JSON mainly, but as we can't push up to MatterMost with your plugin, its not being used as much.
  5. Yes
  • Best: Having freaking web hooks instead of having to poll TC!
  • Worst: Waiting for the stable release :D

In my opinion, I'd drop support for TC9 if there is substantial features available in TC10 so that the plugin is able to advance and be better rather than limiting it.
You can always branch for TC9 and just do bug fixes separately if really necessary for people still on TC9.

-M

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Feb 19, 2017

Member

Thanks @mrinc for taking the time to reply.

I set the lofty goal of writing a REST API and using that from the UI for managing the new templates and webhook config. However, in TC10, one can now store project config in a way that can be managed by the existing REST API, somewhat negating the requirement for mine.

Based on all the feedback so far ;-) , I will abandon the API, and focus on getting templates editable in the UI and then releasing a stable release. Then I will work on transitioning to the new TC 10 config storage model (and providing the kotlin DSL for editing it).

Thanks for making me aware of MatterMost. That should be possible to support already (certainly in the 1.1 alphas). I'll take a look into it.

Member

netwolfuk commented Feb 19, 2017

Thanks @mrinc for taking the time to reply.

I set the lofty goal of writing a REST API and using that from the UI for managing the new templates and webhook config. However, in TC10, one can now store project config in a way that can be managed by the existing REST API, somewhat negating the requirement for mine.

Based on all the feedback so far ;-) , I will abandon the API, and focus on getting templates editable in the UI and then releasing a stable release. Then I will work on transitioning to the new TC 10 config storage model (and providing the kotlin DSL for editing it).

Thanks for making me aware of MatterMost. That should be possible to support already (certainly in the 1.1 alphas). I'll take a look into it.

@ogerovich

This comment has been minimized.

Show comment
Hide comment
@ogerovich

ogerovich Mar 23, 2017

Hello,

  1. 10.0.3, Ubuntu 12.04.3
  2. 1.1.122.138
  3. No
  4. Legacy Webhook (JSON)
  5. Internal
  6. Best: what @mrinc said - no polling. Worst: not being able to see all builds/projects where the plugin is used (e.g. a cumulative list in Administration area).

TC 10+ support is all we need going forward.

ogerovich commented Mar 23, 2017

Hello,

  1. 10.0.3, Ubuntu 12.04.3
  2. 1.1.122.138
  3. No
  4. Legacy Webhook (JSON)
  5. Internal
  6. Best: what @mrinc said - no polling. Worst: not being able to see all builds/projects where the plugin is used (e.g. a cumulative list in Administration area).

TC 10+ support is all we need going forward.

@nap

This comment has been minimized.

Show comment
Hide comment
@nap

nap Mar 23, 2017

  1. 9.1.7, CentOS 6
  2. 0.9.27.61
  3. Not supported in the version we use
  4. Name Value Pairs
  5. Both
  6. What's the best and/or worst thing about tcWebHooks?
    a. It just work, and like others sais: No Poll
    b. UI is buggy and cant configure the message from UI, need to edit XML

To me, it would make sence to support the last 2 majors of TeamCity. Especially with their shitty licensing model. We can't upgrade as we would lose agent licenses.

nap commented Mar 23, 2017

  1. 9.1.7, CentOS 6
  2. 0.9.27.61
  3. Not supported in the version we use
  4. Name Value Pairs
  5. Both
  6. What's the best and/or worst thing about tcWebHooks?
    a. It just work, and like others sais: No Poll
    b. UI is buggy and cant configure the message from UI, need to edit XML

To me, it would make sence to support the last 2 majors of TeamCity. Especially with their shitty licensing model. We can't upgrade as we would lose agent licenses.

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Mar 23, 2017

Member

Thanks @nap and @ogerovich for your feedback. I very much appreciate you taking the time to post a comment.

@nap, could you possibly attach some of your plugin-settings.xml files to this issue or email them to me? Please remove any sensitive data from them first :-) I'd like to see what settings you have had to manually edit, and make sure my future plans include a way to edit them in the UI.

Also, can you think of anything specific in the UI that you find buggy? Feel free to raise an issue for any bugs.

Member

netwolfuk commented Mar 23, 2017

Thanks @nap and @ogerovich for your feedback. I very much appreciate you taking the time to post a comment.

@nap, could you possibly attach some of your plugin-settings.xml files to this issue or email them to me? Please remove any sensitive data from them first :-) I'd like to see what settings you have had to manually edit, and make sure my future plans include a way to edit them in the UI.

Also, can you think of anything specific in the UI that you find buggy? Feel free to raise an issue for any bugs.

@nap

This comment has been minimized.

Show comment
Hide comment
@nap

nap Mar 23, 2017

Reading my previous post here. I see that I might have come off a little bit strong. Sorry about that, I think you're doing a great job. No offence was intended.

Here's the payload I send to Slack that is read from plugin-settings.xml. As you know from my previous comment, we use an old version of the plugin (0.9.27.61). So some of what I'll show might already have been fixed by you.

<!-- Entity encoded payload to slack channel -->
<parameters>
    <param name="payload" value="{&quot;username&quot;:&quot;build-bot&quot;,&quot;icon_emoji&quot;:&quot;:robot_face:&quot;,&quot;text&quot;:&quot;&lt;!here|here&gt; ${buildFullName} has finished. This is build number ${buildNumber}, has a status of *${buildResult}* and was triggered by ${triggeredBy}\n```${buildStatus}```&quot;,&quot;attachments&quot;:[{&quot;color&quot;:&quot;#FF0000&quot;,&quot;fields&quot;:[{&quot;title&quot;:&quot;TeamCity&quot;,&quot;value&quot;:&quot;&lt;http://cmserver.corp.radialpoint.com/teamcity/viewLog.html?buildTypeId=${buildTypeId}&amp;buildId=${buildId}|${buildFullName}&gt;&quot;,&quot;short&quot;:false},{&quot;title&quot;:&quot;SonarQube&quot;,&quot;value&quot;:&quot;&lt;http://sonarqube.radialpoint.com/overview?id=${projectExternalId}:${branchDisplayName}|${projectExternalId}:${branchDisplayName}&gt;&quot;,&quot;short&quot;:false}]}]}" />
</parameters>

Here are some screenshot of the UI

Here the title seems to be missing padding or margin:

screen shot 2017-03-23 at 1 03 20 pm

Here you can see that the list of build configuration is overflowing the size of the container.

screen shot 2017-03-23 at 1 03 33 pm

nap commented Mar 23, 2017

Reading my previous post here. I see that I might have come off a little bit strong. Sorry about that, I think you're doing a great job. No offence was intended.

Here's the payload I send to Slack that is read from plugin-settings.xml. As you know from my previous comment, we use an old version of the plugin (0.9.27.61). So some of what I'll show might already have been fixed by you.

<!-- Entity encoded payload to slack channel -->
<parameters>
    <param name="payload" value="{&quot;username&quot;:&quot;build-bot&quot;,&quot;icon_emoji&quot;:&quot;:robot_face:&quot;,&quot;text&quot;:&quot;&lt;!here|here&gt; ${buildFullName} has finished. This is build number ${buildNumber}, has a status of *${buildResult}* and was triggered by ${triggeredBy}\n```${buildStatus}```&quot;,&quot;attachments&quot;:[{&quot;color&quot;:&quot;#FF0000&quot;,&quot;fields&quot;:[{&quot;title&quot;:&quot;TeamCity&quot;,&quot;value&quot;:&quot;&lt;http://cmserver.corp.radialpoint.com/teamcity/viewLog.html?buildTypeId=${buildTypeId}&amp;buildId=${buildId}|${buildFullName}&gt;&quot;,&quot;short&quot;:false},{&quot;title&quot;:&quot;SonarQube&quot;,&quot;value&quot;:&quot;&lt;http://sonarqube.radialpoint.com/overview?id=${projectExternalId}:${branchDisplayName}|${projectExternalId}:${branchDisplayName}&gt;&quot;,&quot;short&quot;:false}]}]}" />
</parameters>

Here are some screenshot of the UI

Here the title seems to be missing padding or margin:

screen shot 2017-03-23 at 1 03 20 pm

Here you can see that the list of build configuration is overflowing the size of the container.

screen shot 2017-03-23 at 1 03 33 pm

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Mar 23, 2017

Member

@nap That's fine. No offense taken. Thanks for the words of encouragement.

I plan to implement a "variable builder" in the UI. Which allows one to build variables either at the project scope or webhook scope. For the Legacy payloads they will just appear in the payload as parameters. For the new templates in 1.1.x, they will be able to be referred to in a template.

Thanks for pointing out the overflow bug. I was not aware of that. I think I've fixed the dialog title padding in 1.1. However that code needs to be updated as it was from TeamCity 6 era. I've noticed that ESC does not close the dialog, and one can't drag it around.

Member

netwolfuk commented Mar 23, 2017

@nap That's fine. No offense taken. Thanks for the words of encouragement.

I plan to implement a "variable builder" in the UI. Which allows one to build variables either at the project scope or webhook scope. For the Legacy payloads they will just appear in the payload as parameters. For the new templates in 1.1.x, they will be able to be referred to in a template.

Thanks for pointing out the overflow bug. I was not aware of that. I think I've fixed the dialog title padding in 1.1. However that code needs to be updated as it was from TeamCity 6 era. I've noticed that ESC does not close the dialog, and one can't drag it around.

@nap

This comment has been minimized.

Show comment
Hide comment
@nap

nap Mar 23, 2017

Are you planning on dropping support for TeamCity 9 for version 1.1?

nap commented Mar 23, 2017

Are you planning on dropping support for TeamCity 9 for version 1.1?

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Mar 23, 2017

Member

No. Probably 1.2 or 1.3 2.0 #62 . And maybe even maintain a branch if required.

Member

netwolfuk commented Mar 23, 2017

No. Probably 1.2 or 1.3 2.0 #62 . And maybe even maintain a branch if required.

@cornz

This comment has been minimized.

Show comment
Hide comment
@cornz

cornz Mar 28, 2017

  1. 10.0.2 centOS 7, dockered
  2. 1.1
  3. modified the slack template to work with Microsoft Teams
  4. JSON
  5. Microsoft Teams (Business) - probably both? :)
  6. best: works with minimal effort; worst: templates are confusing and should be configured via webinterface

cornz commented Mar 28, 2017

  1. 10.0.2 centOS 7, dockered
  2. 1.1
  3. modified the slack template to work with Microsoft Teams
  4. JSON
  5. Microsoft Teams (Business) - probably both? :)
  6. best: works with minimal effort; worst: templates are confusing and should be configured via webinterface
@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Mar 28, 2017

Member

Thanks for your feedback @cornz. Template editing in the UI is under development #67.

Would you be prepared to share your MS Teams template?

Member

netwolfuk commented Mar 28, 2017

Thanks for your feedback @cornz. Template editing in the UI is under development #67.

Would you be prepared to share your MS Teams template?

@cornz

This comment has been minimized.

Show comment
Hide comment
@cornz

cornz Apr 2, 2017

Sure, it's not that different from the slack one anyway and Microsoft has a decent API documentation for customization: https://dev.outlook.com/Connectors/Reference

cornz commented Apr 2, 2017

Sure, it's not that different from the slack one anyway and Microsoft has a decent API documentation for customization: https://dev.outlook.com/Connectors/Reference

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Apr 2, 2017

Member

That's cool. I just have no way to test it, so whatever you have will be much better than anything I dream up.

Member

netwolfuk commented Apr 2, 2017

That's cool. I just have no way to test it, so whatever you have will be much better than anything I dream up.

@nbergen

This comment has been minimized.

Show comment
Hide comment
@nbergen

nbergen Apr 18, 2017

  1. TC 10.0 / Windows
  2. 0.9
  3. n/a
  4. JSON
  5. slack
  6. Templates are a hassle (so much so that I haven't set them up for a few of our smaller builds)

nbergen commented Apr 18, 2017

  1. TC 10.0 / Windows
  2. 0.9
  3. n/a
  4. JSON
  5. slack
  6. Templates are a hassle (so much so that I haven't set them up for a few of our smaller builds)
@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Apr 20, 2017

Member

Thanks @nbergen for your comments. When you say they are a hassle, it is because they are cumbersome to edit, or some other reason?
I have started working on #67 which will provide a UI for creating/editing/cloning/deleting templates.

Member

netwolfuk commented Apr 20, 2017

Thanks @nbergen for your comments. When you say they are a hassle, it is because they are cumbersome to edit, or some other reason?
I have started working on #67 which will provide a UI for creating/editing/cloning/deleting templates.

@nbergen

This comment has been minimized.

Show comment
Hide comment
@nbergen

nbergen Apr 20, 2017

It's been a little while since I've touched them, but I believe I ended up having to ts on to each TC server and find the correct folder to drop (and iterate on) the templates, and having separate scripts to format the template in a way Slack was happy with (escaping characters and dealing with whitespace).

So cumbersome to edit, both the actual files and massaging the format to suit the integration.

nbergen commented Apr 20, 2017

It's been a little while since I've touched them, but I believe I ended up having to ts on to each TC server and find the correct folder to drop (and iterate on) the templates, and having separate scripts to format the template in a way Slack was happy with (escaping characters and dealing with whitespace).

So cumbersome to edit, both the actual files and massaging the format to suit the integration.

@netwolfuk

This comment has been minimized.

Show comment
Hide comment
@netwolfuk

netwolfuk Apr 20, 2017

Member

Thanks @nbergen That's useful feedback.
I'm hoping that the new templating concept allows more effective reuse of payload customisations.

There will also be a preview screen from which one can see the template rendered from the contents of a recent build, and (hopefully) able to trigger the webhook for testing, rather than having to run a build.

However, based on your feedback, it would be useful to be able to export/import the raw config somehow, for when one maintains multiple TeamCity instances.

Member

netwolfuk commented Apr 20, 2017

Thanks @nbergen That's useful feedback.
I'm hoping that the new templating concept allows more effective reuse of payload customisations.

There will also be a preview screen from which one can see the template rendered from the contents of a recent build, and (hopefully) able to trigger the webhook for testing, rather than having to run a build.

However, based on your feedback, it would be useful to be able to export/import the raw config somehow, for when one maintains multiple TeamCity instances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment