Code Monkey home page Code Monkey logo

azure-boards-estimate's Introduction

Azure Boards Estimate

Play Planning Poker in Azure DevOps. Select work from an iteration, query, or your backlog, estimate the effort of those items with your team, and immediately update the work items.

Support

See Support in our GitHub repository for information about how to report issues and get help.

Contributing

Developing and Testing

To test your work, first follow these steps to set up a DevOps marketplace publisher account (if you already have an account move on).

  1. Run npm run package-dev and upload the package as a private extension to your Azure DevOps publisher account

Note: You may need to add a directory called build to the project root when running the script. The output of the package-dev script is there.

  • Be sure to update the manifest.json to use your publisher's ID before running the script.
  1. Install the private extension on your Azure DevOps oragnization and test your changes.

azure-boards-estimate's People

Contributors

allauthors avatar aminti avatar azure-pipelines[bot] avatar cadacious avatar cschleiden avatar dependabot[bot] avatar dutta14 avatar hangy avatar madkoo avatar microsoft-github-policy-service[bot] avatar molausson avatar peval27 avatar psypher9 avatar topher-slalom avatar zunderscore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-boards-estimate's Issues

Extension no longer works after "Moved extension to new home" update

Version 2.3.0 just got pushed to our Azure DevOps.
The extension Hub page (list of Sessions) still loads (although I am seeing errors in Chrome tools), but we can no longer drill into any specific Sessions. Page never finishes loading and seeing the following error:

POST https://msdevlabs-estimate-backend.azurewebsites.net//estimate/negotiate?sessionId=... net::ERR_CONNECTION_RESET

I see in the code that
const baseUrl = "https://estimate-backend.azurewebsites.net/";
changed to
const baseUrl = "https://msdevlabs-estimate-backend.azurewebsites.net/";

I'm assuming there is an issue with us accessing the new baseUrl.
Thanks.

Work item header title link only links to the first work item in the list

When there is a list of work item cards, the title link is the same for all of them and is for the first work item in the list.

I looked into this a little bit, but I'm not a React developer. It seems like the recent switch to get the URL with the ILocationService in the workItemHeader.tsx is the cause, and I suspect that there's some await issue going on. Again, no React experience but maybe the location service is acting as a singleton instead of running for each component instance? Or perhaps there's some odd React stuff happening.

View another work item without changing everyone's view

During a live estimation session, I'd like to be able to view a work item other than the current active one (preferably a link I can open in another tab) without changing everyone's view.

Example use cases:

  • Open the next item as discussion is winding down on the current item, to read ahead.
  • Refer back to a previous work item from the session without clearing already-made votes.
  • Open all work items for the session in tabs. (Fixing #77 would help with this, since I usually do it at the beginning of the estimation session.)

Currently I have to remember or write down the work item number, open a new tab, and navigate to it manually. I can't use the clipboard to help, because highlighting an inactive work item's number or name makes it active.

Thank you for considering this enhancement request.

Unable to load session in Estimate tool in Azure Dev Ops

Unable to load session in Estimate tool in Azure Dev Ops. We came to know the tool appears to have been updated on 07/30.
This appears to have broken functionality. We use this tool in our backlog grooming to size stories. Please can you guys fix this ASAP.

Cannot save estimate, no field is configured for work items of type Task

The save for the estimation is not working.

The endpoint
_apis/ExtensionManagement/InstalledExtensions/ms-devlabs/estimate/Data/Scopes/Default/Current/Collections/$settings/Documents/4beb812e-dd99-44ee-9aef-b1b687944ae5-field-configuration

The error
{"$id":"1","innerException":null,"message":"%error="1660002";%:The collection does not exist\r\n%error="1660002";%:The collection does not exist","typeName":"Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.DocumentCollectionDoesNotExistException, Microsoft.VisualStudio.Services.ExtensionManagement.WebApi","typeKey":"DocumentCollectionDoesNotExistException","errorCode":0,"eventId":3000}

Could you take a look on that?

Cant create new estimate session in Azure DevOps

Hello,

I would like to use the extension Estimate to do the Planning Poker in Azure DevOps.
Unfortunately I cannot create new estimation sessions, since the create button does not become active.

Do you have any hint?
Thanks,

Robert

Create new Estimate Session

Extension Estimate

Being signed out when accessing a session

Dear team,

after recent update once accessing the session we are being signed-out which makes the plugin unusable.
Even after submitting the correct credentials it is not working.

Please advice. Thank you!

Julius

Black text on dark background in dark theme

I've noticed a few places where using a dark theme results in difficult-to-read text:

The vote buttons in a live session:
image

The title field when creating a new session:
image

The field dropdown in settings:
image

Questions

Hi

I have two questions.

  1. How can you add more PBIs, Bugs or tasks to an existing estimation session?
  2. I am getting an error when estimating a task, it says
    image
    Which field is required on the task for it to work?

Thanks

Unable to open created sessions

I think this first started 2 or 3 sprints (4 or 6 weeks) ago and persisted during today's planning...

After creating a session (query based in case it matters) and trying to open it, we're seeing a perpetual "Connecting to server" message while several API calls have failed with 404 errors:

And finally, the following call fails with ERR_NAME_NOT_RESOLVED

I'm afraid I probably don't have the means to setup a repro but am happy to connect with anyone on the development team through Teams or email.

Having the same issue with the estimate board as the others mentioned here

Myself and my BA are also having issues.

I create the session. I try to start the session and it just spins saying it's loading.

My BA can access the session, but when she tries to see the actual estimates that the team is adding, the page goes blank on her.

Has anyone looked into this? This estimate board is not un-usable and we have had to start pointing via teams chat which is not ideal.

Please let us know if someone is looking into this issue.

Could not load session: 404: Not Found

Steps to reproduce

  1. On a project that uses the "Agile" process adcc42ab-9882-485e-a3ed-7678f01f66bc, create a new estimation session that contains work items.
  2. Open the created session.
  3. Observe the following error:
    grafik

Analysis

The error looks to be related to the process type. Apparently, for a project with this new "inheritance" model, the extension requests the workitems from two URLs:

  1. https://tfs.example.org/SomeProjectCollection/{SomeGuid}/_apis/wit/workItemTypes
  2. https://tfs.example.org/SomeProjectCollection/_apis/work/processes/adcc42ab-9882-485e-a3ed-7678f01f66bc/workItemTypes

The latter call is not present in older (XML?) based process configurations, and 404s in our "agile" project, probably causing the 404 error.

Additional information

In the original bug report, it was not clear why this was happening in some collections and not in others. @ray-cuadra and I noticed that it might be related to project collections that were upgraded from some prior version to Azure DevOps Server 2020. I previously reported this to MS, but unfortunately, it was closed as "not a bug".

The service is called in the following line:

const workItemTypes = await processClient.getProcessWorkItemTypes(
processTypeId
);

Links to prior issues

Story Link Broken if you use "Open link in new window"

Please see "Story Link Broken for Other Users in Session" #77 and "Workitem link targets a wrong base address with on-premise configuration" #37.

Installed version: 2.3.21

It now works fine if you just click on the link. But if you shift click or right click and select "Open link in new window", the previously selected work item opens. You can see this already in the link preview (lower left corner in Chrome).

Maybe just an update is missing after selecting another card?

Acceptance Criteria in Preview

Currently, only the description of the user story is displayed in the preview. Would it also be possible to display the acceptance criteria?
Only this gives the complete scope of the story

Blank screen/work items not loading when clicking on work items in estimation tool

Last week when our team used the estimation tool, we had a blank screen when clicking on 1 work item.
This week, we had to use another method instead of the Estimate tool in DevOps, because every work item we clicked on resulted in a blank screen/the work item not loading whatsoever. We were working in offline mode. Please advise.

Story Link Broken for Other Users in Session

In an estimate session with multiple stories, clicking the story link at the top seems to always open a link to the first story, rather than the current story. This is only a problem for other users in the session; links seem to work fine for the user that created the session.

For example, when I clicked this link:
image

It took me to this URL (first story in the pointing session):
image

Extension common issues faced on daily basis

  1. Only a limited number of users are able to point the user stories
    a. This is very inconsistent
    b. Sometimes only 2 members are able to point and sometimes 6-7 are able to point
    c. For example, if we have 10 members pointing a user story, only 6 show up as pointed and we keep waiting for the other 4 to point, but they have already pointed. It just doesn't show up
  2. Revealing the story points
    a. More often than not, when we click the ‘Reveal’ button, the screen goes blank and then to the homepage
    b. This is also inconsistent
    c. Sometimes, the revel button works. But most of the time it doesn’t work
  3. Performance
    a. When we click on a session, the page takes forever to load
    b. Very often, we see this error
    image

c. It loads for some users, and it wouldn’t load for others
4. Sessions Page
a. When a new session is created, this is added as a card in this page
b. How the cards are ordered in this page is not clear. It is neither in an alphabetical order, nor or date/time created
c. Trying to find the session is very painful
5. Session created on a query
a. We have a query to retrieve all the user stories in a specific area path that have not been pointed. We also have set a sort order on stackrank
b. When the user stories are listed in a session, they are sometimes missing some user stories or in an adhoc manner, they are sorted differently

All the above issues, we have tried with multiple browsers, incognito mode, clearing cache. But same behavior.

Team Unable to Open PBIs to Estimate

We created an asynch estimation session. The team could open the session, see the Product Backlog Items but could not click on them to open them and do estimation. Any ideas?

Build fails when running locally: --npm start

After cloning, download and installing dependencies, the build fails when trying to run and watch:

Failed to compile.

C:/repos/azure-boards-estimate/src/pages/create/createReducer.ts
Type error: Argument of type '(state: { session: ISession; teams: ITeam[] | null; iterations: IIteration[] | null; cardSets: ICardSet[] | null; team: string; iteration: string; queryId: string; isCreating: boolean; sourceLocked: boolean; }, name: string) => void' is not assignable to parameter of type '(state: { session: any; teams: any | null; iterations: any | null; cardSets: any | null; team: string; iteration: string; queryId: string; isCreating: boolean; sourceLocked: boolean; }, payload: string) => void'.
  Types of parameters 'state' and 'state' are incompatible.
    Type '{ session: any; teams: any | null; iterations: any | null; cardSets: any | null; team: string; iteration: string; queryId: string; isCreating: boolean; sourceLocked: boolean; }' is not assignable to type '{ session: ISession; teams: ITeam[] | null; iterations: IIteration[] | null; cardSets: ICardSet[] | null; team: string; iteration: string; queryId: string; isCreating: boolean; sourceLocked: boolean; }'.
      Types of property 'session' are incompatible.
        Type '{ id: string; name: string; mode: SessionMode; version: number; source: SessionSource; sourceData?: string | any | undefined; createdAt: Date; createdBy: string; cardSet: string; onlyCreatorCanSwitch?: boolean | undefined; isLegacy?: boolean | undefined; }' is not assignable to type 'ISession'.
          Types of property 'sourceData' are incompatible.
            Type 'string | { [x: number]: number; length: number; toString: () => string; toLocaleString: () => string; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<...>)[]): number[]; }; ... 25 more ...; flat: { ...; }; } ...' is not assignable to type 'string | number[] | undefined'.
              Type '{ [x: number]: number; length: number; toString: () => string; toLocaleString: () => string; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<...>)[]): number[]; }; ... 25 more ...; flat: { ...; }; }' is not assignable to type 'string | number[] | undefined'.
                Type '{ [x: number]: number; length: number; toString: () => string; toLocaleString: () => string; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<...>)[]): number[]; }; ... 25 more ...; flat: { ...; }; }' is not assignable to type 'number[]'.
                  Property '[Symbol.iterator]' is missing in type '{ [x: number]: number; length: number; toString: () => string; toLocaleString: () => string; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<...>)[]): number[]; }; ... 25 more ...; flat: { ...; }; }'.  TS2345

    37 | const setName = reducerAction(
    38 |     Actions.setName,
  > 39 |     (state: ICreateSessionState, name) => {
       |     ^
    40 |         state.session.name = name;
    41 |     }
    42 | );

Workitem links on estimate linked to wrong item

Hi,
We are having a problem with links on estimates - we are running v2.3.14.
The links in the estimates all appear to point at one item, not the currently selected item. See attached screenshot where i am hovering over the story 26710 link, and the url is pointing to 26712.

estimate_link_error

work items which exceeds the limit of 200

Seems if we choose one of our work cycles. We get an error trying to create a session.

Could not load session: VS403474: You requested 424 work items which exceeds the limit of 200

Horizontal scroll bars on work item cards when not necessary

Within the last month or so my team noticed some new horizontal scroll bars showing on the work item cards but they don't seem necessary at all. Any chance they can be removed or some logic added to not show them if they aren't required?

image

2022-02-28_15-44-19.mp4

Customize displayed work item

Currently for Product Backlog Items, only the description is shown.
However, most of our estimates depend on the information in the acceptance criteria.

It would be nice to configure the parts that are shown during the estimation process.

Unable to load session

When trying to open an existing session I get 'connecting to server' and nothing happens after that.
1 collegue was able to get to the session itself but the rest also got the same issue as me.

Could you please check what's happening? Now we are unable to use this tool...

Users cannot "End Session" in ADO project.

We have a project where users cannot "End Sessions". They are able to "Create New Sessions" but when they go to select "End Session" on the card it remains grey and the card remains. They have other projects in the organization where this is not occurring and users should have similar permissions. Is there specific permissions that we should look at within this project?

I've had them try both "Only creator can change work items and commit" security setting (toggled on and off) but am seeing the same experience. Any help is appreciated. Thank you!

End Session

Cannot select shared query

When creating a new Session with Workitems from a Query, the dropdown provides no selectable options on "Select query" but "Shared Queries" there are plenty of shared queries with read permission in the project
Bildschirmfoto 2021-12-07 um 09 40 24
.

Estimate data is not loading after migration to cloud

I am migrating the collection from ADO on-premise to ADO SAAS. The Estimate data is not loading after the collection is successfully migrated. I have the Estimate plugin that shows data in the on-premise collection, which are not showing up in the migrated organization.

Please let me know if there is any workaround to export and import the retrospective data to SAAS organization.

Migration is performed using the Azure SQL VM Migration approach using the latest version of the Microsoft migration tool.

Show how many votes are present/missing

In today's refinement meeting, @LiTe1991 had the idea that it would be useful for a Scrum master to know how many people are in the current session, and how many of those have voted on the active item, already. This way, they would not have to count the people/votes manually to know when the estimation for the item is complete.

User receives "The user denied permission to use Service Worker" Error

We have one user who cannot create a new session. When she clicks on the New Session button she receives the message "Connecting to server" and after that it just spins.

Debugging though the JavaScript console showed a "The user denied permission to use Service Worker" error. Online research showed that error can occur if the user has disallowed third-party cookies, but in this case the user was allowing them. Several other users have been successful. To our knowledge this user in the only person experiencing this issue.

Here is the output from the JavaConsole:

registerServiceWorker.ts:90 Error during service worker registration: DOMException: Failed to register a ServiceWorker for scope ('https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/') with script ('https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/service-worker.js'): The user denied permission to use Service Worker.
(anonymous) @ registerServiceWorker.ts:90
extmgmt.dev.azure.com/tr-ihn-sandbox/_apis/ExtensionManagement/InstalledExtensions/ms-devlabs/estimate/Data/Scopes/Default/Current/Collections/sessions/Documents:1 Failed to load resource: the server responded with a status of 404 ()
extmgmt.dev.azure.com/tr-ihn-sandbox/_apis/ExtensionManagement/InstalledExtensions/ms-devlabs/estimate/Data/Scopes/Default/Current/Collections/EstimationSessions/Documents:1 Failed to load resource: the server responded with a status of 404 ()
extmgmt.dev.azure.com/tr-ihn-sandbox/_apis/ExtensionManagement/InstalledExtensions/ms-devlabs/estimate/Data/Scopes/Default/Current/Collections/%24settings/Documents/bc26e72c-fcf6-4f9a-9887-f0d103be2ef1-field-configuration:1 Failed to load resource: the server responded with a status of 404 ()
Utils.js:347 Warning: Error from HTTP request. 0:
e.log @ Utils.js:347
Utils.js:343 Error: Failed to complete negotiation with the server: Error
e.log @ Utils.js:343
Utils.js:343 Error: Failed to start the connection: Error
e.log @ Utils.js:343
signalr.ts:80 Error
(anonymous) @ signalr.ts:80
utils.js:262 uncaught at jr at jr
at p
at Sr
at hr
Error: Cannot send data if the connection is not in the 'Connected' State.
at e.send (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:360750)
at e.send (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:342620)
at https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/main.65a9252c.chunk.js:1:65400
at x (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:491041)
at Generator._invoke (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:490829)
at Generator.e.<computed> [as next] (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:491220)
at r (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:16673)
at s (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:16875)
at https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/estimate/2.3.1/1628859047668/build/static/js/1.e6e482ab.chunk.js:1:16934
at new Promise (<anonymous>)
O @ utils.js:262
msdevlabs-estimate-backend.azurewebsites.net//estimate/negotiate?sessionId=3gbnq&tfId=0c9d5622-2169-6fda-98b2-304dd7b4846b:1 Failed to load resource: net::ERR_CONNECTION_RESET
DevTools failed to load source map: Could not load content for https://amcdn.msftauth.net/scripts/me/MeControl/10.21162.3/en-US/meBoot.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://amcdn.msftauth.net/scripts/me/MeControl/10.21162.3/en-US/meCore.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://amcdn.msftauth.net/meInlineBackCompat.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

v2.3.13 results in "API Version out of Range" message

Our on-prem instance of ADO is on v2019.1.1
ASURE-BOARDS-ESTIMATE was working in our installation until this morning when it was updated to v2.3.13.

We now get the following message when our users try to access their estimates:

"Could not load session: The requested REST API version of 5.2 is out of range for this server. The latest REST API version this server supports is 5.1."

Is there a way to rollback to previous version?
Is there a way to edit a config file to point to APIv5.1?

Change additional fields when giving an estimate

When we do give our estimate, we normally change additional properties as well.
E.g. we move the status to "Approved" to signalize that we approve the work item and the product owner can plan the work item iteration.

Currently, this would require to edit every work item two times, once for estimates, once for other fields.

Unable to complete estimate

Having similar issues as others after the most recent update for some the estimate never loads this is for online and offline sessions. We have found that if you f12 and go to application and clear the site data while you are on the estimate page this helps with the loading issue. However when you get 20 people in a session it is really sluggish and times out often so we are unable to complete estimates happy to work with anyone to get a resolution.

Performance issue since 14.03.2022

Our team experienced some heavy performance issues during our todays session.
After a few minutes the browser tab (tested Chromium-based browsers and Firefox) stops responding and interactions are no longer possible with this tab.
After reloading it works again, but the same problem occurs a few minutes later.

The task manager shows, that there's a serious amount of memory and CPU-performance associated with this browser tab, where Estimate runs.

User cannot create Session

One of my coworkers is unable to create a session with Estimate, dropdowns seem to be disabled for her (her Azure permissions are equivalent to other users that work, as Project Administrators in the Azure Project).

Are there any other settings on a user account that could be causing this?

UX papercuts

Let's fix some minor UX snags:

  • Don't show Acceptance criteria if field does not exist
  • Align settings fields width
  • Improve field visibility in dark mode (new session dialog, settings)

Set Remaining and Completed during the Estimate Session

Will you please add an enhancement to auto-populate the values for Remaining and Completed when the Original Estimate is set?

Current operation is once the estimate is decided the Original Estimate value is set; Remaining and Completed remain empty/unset. Afterwards, one must open & save every Task in the story again to set the hours for Remaining and Completed.

It makes sense that Remaining should initially be set equal to Original Estimate at the time of estimating it. It also makes sense Completed is set to 0, because typically no work has been completed yet. The convenience of initially setting Completed to 0 is this field displays on the Tasks' cards when viewing the Taskboard in Sprints, which allows one to update that field without opening & saving the task.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.