Jump to content

Schedules/KDE4/4.8 Feature Plan: Difference between revisions

From KDE Community Wiki
Albert Astals Cid (talk | contribs)
No edit summary
Djarvie (talk | contribs)
m kdepim: KAlarm update
 
(30 intermediate revisions by 19 users not shown)
Line 69: Line 69:
{{FeatureTodo|Plasma|Activity UI improvements|[email protected]|Will Stephenson}}
{{FeatureTodo|Plasma|Activity UI improvements|[email protected]|Will Stephenson}}
{{FeatureInProgress|KWin|Take over screensaver/locking management from KRunner|[email protected]|Alex Merry}}
{{FeatureInProgress|KWin|Take over screensaver/locking management from KRunner|[email protected]|Alex Merry}}
{{FeatureInProgress|KCM|make mouse cursor size configurable (http://git.reviewboard.kde.org/r/101701/)|[email protected]|Lukas Sommer}}
{{FeatureDone|KCM|make mouse cursor size configurable (http://git.reviewboard.kde.org/r/101701/)|[email protected]|Lukas Sommer}}
{{FeatureDone|powerdevil|Remove Desktop Effects Management|[email protected]|Dario Freddi}}
{{FeatureDone|powerdevil|Remove Desktop Effects Management|[email protected]|Dario Freddi}}
{{FeatureInProgress|powerdevil|Allow static profiles only|[email protected]|Dario Freddi}}
{{FeatureDone|powerdevil|Allow static profiles only|[email protected]|Dario Freddi}}
{{FeatureInProgress|powerdevil|Allow activity interaction|[email protected]|Dario Freddi}}
{{FeatureDone|powerdevil|Allow activity interaction|[email protected]|Dario Freddi}}
{{FeatureTodo|Plasma|Add MPRIS2 support to nowplaying|[email protected]|Alex Merry}}
{{FeatureDone|Plasma|Add MPRIS2 support to nowplaying|[email protected]|Alex Merry}}
{{FeatureInProgress|Plasma|Allow task grouping on the taskbar to work together with kwin window tabbing|[email protected]|Anton Kreuzkamp}}
{{FeatureInProgress|Plasma|Allow task grouping on the taskbar to work together with kwin window tabbing|[email protected]|Anton Kreuzkamp}}
{{FeatureInProgress|Plasma|Merge the QML version of the device notifier|[email protected]|Marco Martin}}
{{FeatureInProgress|Plasma|Merge the QML version of the device notifier|[email protected]|Marco Martin}}
Line 81: Line 81:
{{FeatureInProgress|KWin|No Compositor restart on screen change|[email protected]|Martin Gräßlin}}
{{FeatureInProgress|KWin|No Compositor restart on screen change|[email protected]|Martin Gräßlin}}
{{FeatureInProgress|KWin|Initial Wayland support|[email protected]|Martin Gräßlin}}
{{FeatureInProgress|KWin|Initial Wayland support|[email protected]|Martin Gräßlin}}
{{FeatureTodo|KWin|Support for thumbnails in QML|[email protected]|Martin Gräßlin}}
{{FeatureDone|KWin|Support for thumbnails in QML|[email protected]|Martin Gräßlin}}
{{FeatureInProgress|KWin|Add AnimationEffect class|[email protected]|Thomas Lübking}}
{{FeatureDone|KWin|Add AnimationEffect class|[email protected]|Thomas Lübking}}
{{FeatureInProgress|KWin|Option to prefer the mouse position over the focus chain|[email protected]|Thomas Lübking}}
{{FeatureInProgress|KWin|Option to prefer the mouse position over the focus chain|[email protected]|Thomas Lübking}}
{{FeatureTodo|KWin|More cleanup in the window rules kcm|[email protected]|Thomas Lübking}}
{{FeatureDone|KWin|More cleanup in the window rules kcm|[email protected]|Thomas Lübking}}
{{FeatureTodo|KWin|Trade 1 frame lag for deterministic framerate|[email protected]|Thomas Lübking}}
{{FeatureInProgress|KWin|Trade 1 frame lag for deterministic framerate|[email protected]|Thomas Lübking}}
{{FeatureInProgress|KWin|Improved resizing of windows with thin or no borders|[email protected]|Fredrik Höglund}}
{{FeatureInProgress|KWin|Improved resizing of windows with thin or no borders|[email protected]|Fredrik Höglund}}
{{FeatureInProgress|KWin|Move Workspace's compositing functionality to own class Compositor|[email protected]|Arthur Arlt}}
{{FeatureInProgress|KWin|Move Workspace's compositing functionality to own class Compositor|[email protected]|Arthur Arlt}}
Line 106: Line 106:
! Contact  
! Contact  


{{FeatureInProgress|Dolphin|Implement new view-engine for Dolphin 2.0 (see http://ppenz.blogspot.com/2011/08/introducing-dolphin-20.html)|[email protected]|Peter Penz}}
{{FeatureDone|Dolphin|Implement new view-engine for Dolphin 2.0 (see http://ppenz.blogspot.com/2011/08/introducing-dolphin-20.html and http://ppenz.blogspot.com/2012/01/dolphin-20-status-update.html)|[email protected]|Peter Penz}}
{{FeatureTodo|Dolphin|Implement support for back/forward mouse buttons|[email protected]|Sebastian Dörner}}
{{FeatureTodo|Dolphin|Implement support for back/forward mouse buttons (Postponed to 4.9)|[email protected]|Sebastian Dörner}}
{{FeatureDone|Kate|Search & Replace in files plugin|[email protected]|Kåre Särs}}
{{FeatureDone|Kate|Search & Replace in files plugin|[email protected]|Kåre Särs}}
{{FeatureInProgress|Kate|Make GDB target selection behave like the build plugin |[email protected]|Kåre Särs}}
{{FeatureInProgress|Kate|Make GDB target selection behave like the build plugin |[email protected]|Kåre Särs}}
Line 134: Line 134:
{{FeatureDone|Rocs|User Interface Cleanup|[email protected]|Andreas Cord-Landwehr}}
{{FeatureDone|Rocs|User Interface Cleanup|[email protected]|Andreas Cord-Landwehr}}
{{FeatureDone|Cantor|Add Qalculate backend|[email protected]|Matteo Agostinelli}}
{{FeatureDone|Cantor|Add Qalculate backend|[email protected]|Matteo Agostinelli}}
{{FeatureInProgress|Cantor|Add Scilab backend|filip.saraiva@gmail.com|Filipe Saraiva}}
{{FeatureDone|Cantor|Add Scilab backend|filipe@kde.org|Filipe Saraiva}}
{{FeatureDone|Marble|Marble Runner plugins for Parsing files|tgridel@freedotfr|Thibaut Gridel}}
{{FeatureDone|Marble|Marble Runner plugins for Parsing files|tgridel@freedotfr|Thibaut Gridel}}
{{FeatureDone|Marble|(GSoC) OSM file rendering|[email protected]|Konstantin Oblaukhov}}
{{FeatureDone|Marble|(GSoC) OSM file rendering|[email protected]|Konstantin Oblaukhov}}
Line 141: Line 141:
{{FeatureDone|Marble|Improve LatLonEdit to allow input as Radian and DM|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Marble|Improve LatLonEdit to allow input as Radian and DM|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureInProgress|Marble|Marble Touch (GSoC, Marble on MeeGo/N9)|[email protected]|Daniel Marth, Dennis Nienhüser}}
{{FeatureInProgress|Marble|Marble Touch (GSoC, Marble on MeeGo/N9)|[email protected]|Daniel Marth, Dennis Nienhüser}}
{{FeatureInProgress|Marble|Routing API|[email protected]|Dennis Nienhüser}}
{{FeatureDone|Marble|Routing API|[email protected]|Dennis Nienhüser}}
{{FeatureInProgress|Marble|Adjustable Map Orientation (Rotation in Screen Plane)|[email protected]|Bernhard Beschow}}
{{FeatureInProgress|Marble|Adjustable Map Orientation (Rotation in Screen Plane)|[email protected]|Bernhard Beschow}}
{{FeatureDone|Marble|Speedometer Plugin|[email protected]|Bernhard Beschow}}
{{FeatureDone|Marble|Speedometer Plugin|[email protected]|Bernhard Beschow}}
{{FeatureInProgress|Marble|Plasma Runner for geo coords and Marble bookmarks|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Marble|Plasma Runner for geo coords and Marble bookmarks|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureInProgress|Marble|Make bookmark editor support editing the lonlat coordinates|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Marble|Make bookmark editor support editing the lonlat coordinates|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureInProgress|Marble|Shapefile support|[email protected]|Thibaut Gridel / Torsten Rahn}}
{{FeatureDone|Marble|Fix GeoDataCoordinates parsing from a QString|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Marble|Fix GeoDataCoordinates parsing from a QString|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Marble|OsmNominatim improved display|tgridel@freedorfr|Thibaut Gridel}}
{{FeatureTodo|Marble|Create New Marble About Dialog|[email protected]|Torsten Rahn}}
{{FeatureTodo|Marble|Create New Marble About Dialog|[email protected]|Torsten Rahn}}
{{FeatureTodo|Marble|Add Float Item Management|[email protected]|Torsten Rahn}}
{{FeatureTodo|Marble|Add Float Item Management|[email protected]|Torsten Rahn}}
{{FeatureTodo|Marble|New Search|[email protected]|Torsten Rahn}}
{{FeatureTodo|Marble|New Search|[email protected]|Torsten Rahn}}
{{FeatureInProgress|Marble|Make API more QML-friendly|[email protected]|Bernhard Beschow}}
{{FeatureInProgress|Marble|Make API more QML-friendly|[email protected]|Bernhard Beschow}}
{{FeatureTodo|KTurtle|Add modulo command|nielsslot@gmaildotcom|Niels Slot}}
{{FeatureDone|KTurtle|Add modulo command|nielsslot@gmaildotcom|Niels Slot}}
{{FeatureDone|KGeography|Merge stuff from the cherry_field branch|[email protected]|Albert Astals Cid}}
{{FeatureDone|KGeography|Merge stuff from the cherry_field branch|[email protected]|Albert Astals Cid}}
|}
|}
Line 169: Line 169:
{{FeatureDone|KSudoku|Re-order the puzzle types on the welcome screen.  Use KDE Games Difficulty combo-box instead of a slider. Save user's choices of puzzle between sessions.  Do minor tidy-ups of the user interface.|[email protected]|Ian Wadham}}
{{FeatureDone|KSudoku|Re-order the puzzle types on the welcome screen.  Use KDE Games Difficulty combo-box instead of a slider. Save user's choices of puzzle between sessions.  Do minor tidy-ups of the user interface.|[email protected]|Ian Wadham}}
{{FeatureDone|KGoldrunner|Add the championship level "Gold Rush" game, with Traditional rules, contributed by Gabriel Miltschitzky.|[email protected]|Ian Wadham}}
{{FeatureDone|KGoldrunner|Add the championship level "Gold Rush" game, with Traditional rules, contributed by Gabriel Miltschitzky.|[email protected]|Ian Wadham}}
{{FeatureDone|KGoldrunner|Add the championship level "Jail Break" game, with KGoldrunner rules, contributed by Gabriel Miltschitzky.|[email protected]|Ian Wadham}}|}
{{FeatureDone|KGoldrunner|Add the championship level "Jail Break" game, with KGoldrunner rules, contributed by Gabriel Miltschitzky.|[email protected]|Ian Wadham}}
{{FeatureDone|KiGo|Fix drawing of lines, making sure all lines have the same width.|[email protected]|Frederik Gladhorn}}
{{FeatureDone|KiGo|Add a new plain theme.|[email protected]|Frederik Gladhorn}}|}
<br>
<br>


Line 228: Line 230:
|[email protected]|Friedrich W. H. Kossebau}}
|[email protected]|Friedrich W. H. Kossebau}}


{{FeatureInProgress|KAlarm|Port to Akonadi|[email protected]|David Jarvie}}
{{FeatureDone|KAlarm|Port to Akonadi|[email protected]|David Jarvie}}


{{FeatureTodo
{{FeatureTodo
Line 259: Line 261:


{{FeatureInProgress|Kimpanel|Port kimpanel to DataEngine based one|[email protected]|Xuetian Weng}}
{{FeatureInProgress|Kimpanel|Port kimpanel to DataEngine based one|[email protected]|Xuetian Weng}}
{{FeatureTodo|IconTasks|Import IconTasks|[email protected]|Craig Drummond}}
{{FeatureDone|IconTasks|Import IconTasks|[email protected]|Craig Drummond}}
|}
|}
<br>
<br>
Line 271: Line 273:
! Description  
! Description  
! Contact  
! Contact  
{{FeatureTodo|Okteta|Add a general KPart adapter to Kasten, than finish port of Okteta KPart to Okteta Kasten|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Okteta|Add Flags Datatype to structures tool|[email protected]|Alex Richardson}}
{{FeatureTodo|Okteta|Add global toggle option for the offset display, hex or decimal|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|dolphin-plugins|Mercurial plugin for Dolphin|[email protected]|Vishesh Yadav}}
{{FeatureTodo|Okteta|Add Kate-like combined dialogs to query for actions on files|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|KCachegrind|Upgrade interface to Callgrind (use callgrind_control instead of writing a command file, for > VG 3.7.x)|[email protected]|Josef Weidendorfer}}
{{FeatureTodo|Okteta|add Kate-like search tool|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureDone|Umbrello|Add code import wizard|[email protected]|Andi Fischer}}
{{FeatureTodo|Okteta|Add Okular like embedded notifications|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|add support for import by drop, both url and data|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|add support for memory mapping of files and 64-bit addressing|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|add support for jobs like io, printing, string search or filter|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Add view profiles, incl. editor/manager|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|copy again puts also a value or char variant of the data to clipboard|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Improve the titels of the changes to the bytearray to be more descriptive, best using ids to avoid text string|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Make all user interaction in the KastenCore managers plugin-based|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Merge row and column widgets into one|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Store bookmarks|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Store bookmarks and other view settings for next load|[email protected]|Friedrich W. H. Kossebau}}
{{FeatureTodo|Okteta|Add custom datatypes to structures tool|[email protected]|Alex Richardson}}
{{FeatureInProgress|Okteta|Add Flags Datatype to structures tool|[email protected]|Alex Richardson}}
{{FeatureInProgress|dolphin-plugins|Mercurial plugin for Dolphin|[email protected]|Vishesh Yadav}}
{{FeatureTodo|KCachegrind|Upgrade interface to Callgrind (use callgrind_control instead of writing a command file, for > VG 3.7.x)|[email protected]|Josef Weidendorfer}}  
|}
|}


Line 301: Line 288:
! Description  
! Description  
! Contact  
! Contact  
{{FeatureInProgress|ark|Allow Ark to be used as a KPart again|[email protected]|Raphael Kubo da Costa}}
{{FeatureDone|ark|Allow Ark to be used as a KPart again|[email protected]|Raphael Kubo da Costa}}
{{FeatureInProgress|ksecrets|A suite of tools related to the KSecretsService infrastructure|[email protected]|Valentin Rusu}}
{{FeatureInProgress|ksecrets|A suite of tools related to the KSecretsService infrastructure|[email protected]|Valentin Rusu}}
|}
|}
<br>
<br>

Latest revision as of 13:54, 17 January 2012

This is a list of planned features for the SC 4.8 release.

See also:


Legend:

  • todo => not started yet
  • in-progress => started, but not completed yet
  • done => completed


kdelibs

Status Project Description Contact
DONE Kate Part Line modification system
DONE Kate Part Modeline Editor
DONE Kate Part Reliable code folding
DONE Kate Part Improved vi input mode
IN PROGRESS KIO PreviewJob supports URLs
IN PROGRESS kdeui KSecretsService API addition
IN PROGRESS kdeui/util Connect KWallet class to KSecretsService client API
IN PROGRESS kcookiejar New domain specific cookie policy based on patch provided in bug#54300


kde-runtime

Status Project Description Contact
IN PROGRESS ksecretsserviced KSecretsService daemon implementing the freedesktop.org secrets API. KDE applications will want to use the related kdelibs API (see below)


IN PROGRESS DrKonqi Better duplicate detection
IN PROGRESS KIO Thumbnails webthumbnails plugin
IN PROGRESS DrKonqi Scripting support
IN PROGRESS Plasma Plasma QML QtComponents


kde-workspace

Status Project Description Contact
TO DO KWin Activity switcher Will Stephenson <[email protected]>
TO DO Plasma Activity UI improvements Will Stephenson <[email protected]>
IN PROGRESS KWin Take over screensaver/locking management from KRunner
DONE KCM make mouse cursor size configurable (http://git.reviewboard.kde.org/r/101701/)
DONE powerdevil Remove Desktop Effects Management
DONE powerdevil Allow static profiles only
DONE powerdevil Allow activity interaction
DONE Plasma Add MPRIS2 support to nowplaying
IN PROGRESS Plasma Allow task grouping on the taskbar to work together with kwin window tabbing
IN PROGRESS Plasma Merge the QML version of the device notifier
IN PROGRESS Plasma Merge the QML version of the battery applet
DONE KWin QML based Window switcher (Tabbox)
IN PROGRESS KWin Texture Rectangle ARB support in Shaders
IN PROGRESS KWin No Compositor restart on screen change
IN PROGRESS KWin Initial Wayland support
DONE KWin Support for thumbnails in QML
DONE KWin Add AnimationEffect class
IN PROGRESS KWin Option to prefer the mouse position over the focus chain
DONE KWin More cleanup in the window rules kcm
IN PROGRESS KWin Trade 1 frame lag for deterministic framerate
IN PROGRESS KWin Improved resizing of windows with thin or no borders
IN PROGRESS KWin Move Workspace's compositing functionality to own class Compositor
IN PROGRESS KWin Introduce class DecorationPaintRedirector for decoration handling when Compositing is active
IN PROGRESS Screenlocker New Screenlocker and daemon
DONE Plasma Merge IconTask's taskmanager changes
DONE KCM Allow flag and label in keyboard layout indicator
IN PROGRESS KSplash QML based ksplash


kde-baseapps

Status Project Description Contact
DONE Dolphin Implement new view-engine for Dolphin 2.0 (see http://ppenz.blogspot.com/2011/08/introducing-dolphin-20.html and http://ppenz.blogspot.com/2012/01/dolphin-20-status-update.html)
TO DO Dolphin Implement support for back/forward mouse buttons (Postponed to 4.9) Sebastian Dörner <[email protected]>
DONE Kate Search & Replace in files plugin
IN PROGRESS Kate Make GDB target selection behave like the build plugin
IN PROGRESS Kate Add convenience options for remote debugging
DONE Settings Improve proxy configuration dialog


kdeedu

Status Project Description Contact
IN PROGRESS KTouch New organisation of keyboard and lecture files according to languages
IN PROGRESS KTouch New organisation of menu system: Training, Statistic, Settings
TO DO KTouch End of lecture statistics Rüthemann Peter <[email protected]>
DONE Rocs Alignment Actions to minimize crossing graph edges
TO DO Rocs Project Files to combine graphs and algorithms Andreas Cord-Landwehr <[email protected]>
DONE Rocs Context menu for graph scene
DONE Rocs Resurrect import-/export-features
DONE Rocs User Interface Cleanup
DONE Cantor Add Qalculate backend
DONE Cantor Add Scilab backend
DONE Marble Marble Runner plugins for Parsing files
DONE Marble (GSoC) OSM file rendering
DONE Marble Marble Graphics Scene (Performance of Vector Drawing)
DONE Marble Gps Info Plugin
DONE Marble Improve LatLonEdit to allow input as Radian and DM
IN PROGRESS Marble Marble Touch (GSoC, Marble on MeeGo/N9)
DONE Marble Routing API
IN PROGRESS Marble Adjustable Map Orientation (Rotation in Screen Plane)
DONE Marble Speedometer Plugin
DONE Marble Plasma Runner for geo coords and Marble bookmarks
DONE Marble Make bookmark editor support editing the lonlat coordinates
DONE Marble Fix GeoDataCoordinates parsing from a QString
DONE Marble OsmNominatim improved display
TO DO Marble Create New Marble About Dialog Torsten Rahn <[email protected]>
TO DO Marble Add Float Item Management Torsten Rahn <[email protected]>
TO DO Marble New Search Torsten Rahn <[email protected]>
IN PROGRESS Marble Make API more QML-friendly
DONE KTurtle Add modulo command
DONE KGeography Merge stuff from the cherry_field branch


kdegames

Status Project Description Contact
DONE Libkdegames Improve graphics performance in all games by standardizing on the use of Qt Raster Graphics.
DONE KSudoku Add a new generator and solver to KSudoku, based on published algorithms. This will provide a full range of puzzle difficulties, rather than mainly easy puzzles, and will address bug 217925 and its duplicates 228614 and 237262 (now nearly two years old).
DONE KSudoku Re-implement the puzzle-symmetry feature.
DONE KSudoku Re-order the puzzle types on the welcome screen. Use KDE Games Difficulty combo-box instead of a slider. Save user's choices of puzzle between sessions. Do minor tidy-ups of the user interface.
DONE KGoldrunner Add the championship level "Gold Rush" game, with Traditional rules, contributed by Gabriel Miltschitzky.
DONE KGoldrunner Add the championship level "Jail Break" game, with KGoldrunner rules, contributed by Gabriel Miltschitzky.
DONE KiGo Fix drawing of lines, making sure all lines have the same width.
DONE KiGo Add a new plain theme.


kdegraphics

Status Project Description Contact
IN PROGRESS Okular Reset Form Action support
DONE Okular Viewer Mode & Interface.
DONE Okular Table selection tool improvements
IN PROGRESS Gwenview Animated image transitions


kdemultimedia

Status Project Description Contact
TO DO JuK MPRIS2 support Alex Merry <[email protected]>


kdenetwork

Status Project Description Contact
IN PROGRESS KGet Better interaction for torrents if they are seeding and other downloads stopped because of that
IN PROGRESS KGet Class that handles deleting files
IN PROGRESS Kopete Akonadi History Plugin


kdepim

Status Project Description Contact
TO DO attachment:/ kio-slave Implement kio-slave to access (email) attachments in Akonadi Friedrich W. H. Kossebau <[email protected]>


DONE KAlarm Port to Akonadi


TO DO sieve: implement wizard Implement wizard to help user to create sieve script Montel Laurent <[email protected]>


DONE HTML Replies Give messagecomposer (especially for KMail) the ability to compose replies in HTML


IN PROGRESS KMail import KMail1 setup import instead of migration


IN PROGRESS Agent control workspace integration Monitoring and control of Akonadi agents through Plasma workspace facilitites



kdeplasma-addons

Status Project Description Contact
IN PROGRESS Kimpanel Port kimpanel to DataEngine based one
DONE IconTasks Import IconTasks


kdesdk

Status Project Description Contact
DONE Okteta Add Flags Datatype to structures tool
DONE dolphin-plugins Mercurial plugin for Dolphin
DONE KCachegrind Upgrade interface to Callgrind (use callgrind_control instead of writing a command file, for > VG 3.7.x)
DONE Umbrello Add code import wizard


kdeutils

Status Project Description Contact
DONE ark Allow Ark to be used as a KPart again
IN PROGRESS ksecrets A suite of tools related to the KSecretsService infrastructure