0.5.5 • Published 6 months ago

rally-modern-sdk v0.5.5

Weekly downloads
-
License
BSD-3-Clause
Repository
-
Last release
6 months ago

rally-modern-sdk

An exploration of what a more modern SDK for Broadcom's Rally ALM could look like.

Rally's public SDK uses ExtJS 4, which is very outdated - Especially as Rally has been updated with a new UI.

This is an attempt to make something in Svelte that looks comparable to their in-house React kit.

This is currently pre-beta software and may remain that way forever

Repo Structure

src/lib houses all of the SDK code

src/routes houses the testing app code

SDK Structure

Import the components and utilities you need like so:

import { Grid, createFilter } from 'rally-modern-sdk

Available components

  • App
  • Button
  • Checkbox
  • Combobox
  • Dialog
  • FieldChooser
  • FilterControl
  • Grid
  • Input
  • LoadingMask
  • Popover
  • ProgressBar
  • SavedViewCombo
  • Toast

Available utilities

  • createArtifact
  • createBatch
  • createDetailLink
  • createFilter
  • createSorter
  • decorateRallyObjects
  • deleteWorkspacePreference
  • getAllowedValues
  • getChildProjects
  • getCollection
  • getCollectionStore
  • getContext
  • getCurrentProject
  • getDataContext
  • getEnvironmentConfig
  • getFeatureToggle
  • getFieldDisplayValue
  • getFlowStates
  • getHealthColorForObjective
  • getHealthColorForPortfolioItem
  • getModel
  • getObjectiveTypes
  • getOidFromRef
  • getPortfolioItemStates
  • getPortfolioItemTypes
  • getProjectHierarchy
  • getProjectTree
  • getRecordType
  • getScheduleStates
  • getScopedStateId
  • getState
  • getTopLevelProjects
  • getTypeAttributes
  • getTypeDefinition
  • getWorkspacePreference
  • getWorkspaceTimeZone
  • initRallyApp
  • parseError
  • promisify
  • query
  • queryLookback
  • saveAs
  • saveState
  • setLoading
  • showError
  • showMessage
  • showSuccess
  • showWarning
  • updateWorkspacePreference
  • urlRequest

TODO

  • Ability to pass data promise to components and show appropriate loading UI
    • Need to manage pageSize, paging, fetching more data
  • Factory for Combobox display values (e.g. Name should inlude formatted ID for artifacts)
  • Grid default sorters if type is string or for standard fields (e.g. Formatted ID, sort numerically by unformatted id)
  • Combobox displayField can handle Rally Model data (aka item.get(displayField))
  • Combobox add Generics to data paramater for typing
  • Component validation
  • Combobox improve keyboard navigation on pagination buttons
  • Combobox fix page count text when searching with local data (remote data, value clearing on expanding)
  • Charts?
  • Combobox items aria-label isn't reactive when selecting/unselecting
  • Review z-indexes in components
  • Artifact details tooltip when hovering over FormattedID in grid
  • Keyboard accessibility on Buttons is broken
  • Use workspace specific names for Project, Release, Iteration (found in WorkspaceConfiguration)
  • Use normalizePercentValues, toPercentQuery
  • Remove dependency on Extjs SDK
  • Pre-fetch attribute definitions?
  • Make collection popup grids better aware of model type(s). (E.g. AssociatedWork of Objective is a specific PI type, not generic PortfolioItem type). Maybe need a function to get AssociatedWorkType
  • Think about Grid plugin system (e.g. pass a GridExporter componenent to headerRight snippet. Then if user doesnt use GridExporter, papaparse shouldn't end up in built app code due to tree shaking. Also then users can chose the order in which items in header are displayed. question is how do we best interface plugins with internal grid data)
  • Composite type definitions
0.5.4

6 months ago

0.5.3

6 months ago

0.5.5

6 months ago

0.5.1

8 months ago

0.5.0

9 months ago

0.3.0

2 years ago

0.2.0

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago