![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@redhat-cloud-services/frontend-components-inventory-patchman
Advanced tools
[![Build Status](https://app.travis-ci.com/RedHatInsights/patchman-ui.svg?branch=master)](https://app.travis-ci.com/RedHatInsights/patchman-ui) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)]
Patch is one of the applications for console.redhat.com. It allows users to display and manage available patches for their registered systems. This repository containes source code for the frontend part of the application which uses the REST API available from Patchman Engine.
The Patchman UI is a sub application under the Red Hat insights platform with Insights chroming app as a wrapper.
There are 2 technologies used for integration with backend and deployment purposes:
Note: the difference is insights proxy has to be reinitialised everytime you want to develop, while webpack proxy is auto initialized when you run the command npm run start:proxy:beta
.
There is a comprehensive quick start guide in the Storybook Documentation to setting up an Insights environment complete with:
Note: You will need to set up the Insights environment if you want to develop with the starter app due to the consumption of the chroming service as well as setting up your global/app navigation through the API.
git clone git@github.com:RedHatInsights/patchman-ui.git
npm install
SPANDX_CONFIG="./config/spandx.config.js" bash $PROXY_PATH/scripts/run.sh
npm run start
npm run start:proxy:beta
- use this command if you wand to develop Patch UI using webpack proxy starts webpack bundler and serves the files with webpack dev server
npm run verify
will run linters and testspush
events as well as pull_request
events send notificationsnpm run test
will run only Jest testsnpm run test:update
is used to update the test snapshotsAny push to the following branches will trigger a build in patchman-ui-build repository which will deploy to corresponding environment.
Push to branch in this repo | Updated branch in build repo | Environment | Available at |
---|---|---|---|
master | stage-beta | stage beta | https://console.stage.redhat.com/preview |
stage-stable | stage-stable | stage stable | https://console.stage.redhat.com |
prod-beta | prod-beta | production beta | https://console.redhat.com/preview |
prod-stable | prod-stable | production stable | https://console.redhat.com |
Insights Platform will deliver components and static assets through npm. ESI tags are used to import the chroming which takes care of the header, sidebar, and footer.
This file exports an object with the configuration for webpack and webpack dev server.
{
mode: https://webpack.js.org/concepts/mode/,
devtool: https://webpack.js.org/configuration/devtool/,
// different bundle options.
// allows you to completely separate vendor code from app code and much more.
// https://webpack.js.org/plugins/split-chunks-plugin/
optimization: {
chunks: https://webpack.js.org/plugins/split-chunks-plugin/#optimization-splitchunks-chunks-all,
runtimeChunk: https://webpack.js.org/plugins/split-chunks-plugin/#optimization-runtimechunk,
// https://webpack.js.org/plugins/split-chunks-plugin/#configuring-cache-groups
cacheGroups: {
// bundles all vendor code needed to run the entry file
common_initial: {
test: // file regex: /[\\/]node_modules[\\/]/,
name: // filename: 'common.initial',
chunks: // chunk type initial, async, all
}
}
},
// each property of entry maps to the name of an entry file
// https://webpack.js.org/concepts/entry-points/
entry: {
// example bunde names
bundle1: 'src/entry1.js',
bundle2: 'src/entry2.js'
},
// bundle output options.
output: {
filename: https://webpack.js.org/configuration/output/#output-filename,
path: https://webpack.js.org/configuration/output/#output-path,
publicPath: https://webpack.js.org/configuration/output/#output-publicpath,
chunkFilename: https://webpack.js.org/configuration/output/#output-chunkfilename
},
module: {
rules: https://webpack.js.org/configuration/module/#module-rules
},
// An array of webpack plugins look at webpack.plugins.js
// https://webpack.js.org/plugins/
plugins: [],
// webpack dev serve options
// https://github.com/webpack/webpack-dev-server
devServer: {}
}
High-Order Component
Smart/Presentational Components
State and lifecycle within class components
A store holds the whole state tree of your application. Redux doesn't have a Dispatcher or support many stores. Instead, there is just a single store with a single root reducing function.
Create Store: createStore(reducer, preloadedState, enhancer)
Actions are payloads of information that send data from your application to your store. They are the only source of information for the store. You send them to the store using store.dispatch(). Redux actions should only have two properties, type and payload, as a best practice.
Async Actions frameworks
// gotSystems(Error) are action creators
function getSystems() {
return function (dispatch) {
return fetchSystems().then(
systems => dispatch(gotSystems(systems)),
error => dispatch(gotSystemsError(error))
);
};
}
Reducers specify how the application's state changes in response to actions sent to the store.
Ex) /src/api/System/getSystems.js
When setting up the routes, the page content is wrapped with a .page__{pageName}
class, applied to the #root
ID that is determined by the rootClass
in the Routes.js
which lets you easily reference the page in the styling.
<Router>
that uses the HTML5 history API (pushState, replaceState and the popstate event) to keep your UI in sync with the URL<Route>
or <Redirect>
that matches the location.Have insights-proxy installed under PROXY_PATH
SPANDX_CONFIG="./config/spandx.config.js" bash $PROXY_PATH/scripts/run.sh
In order to test system detail in inventory application pull inventory UI app, install dependencies and run it
>$ npm install
>$ npm start
With our spandx config, patch and inventory running you should be able to see changes in the system detail of inventory.
When you want to test your code with unit tests please use jest
which is preconfigured in a way to colect codecoverage as well. If you want to see your coverage on server the travis config has been set in a way that it will send data to codecov.io the only thing you have to do is visit their website (register), enable your repository and add CODECOV_TOKEN to your travis web config (do not add it to .travis file, but trough travis-ci.org)
export SONAR_HOST_URL=https://sonar-server
export SONAR_LOGIN=paste-your-generated-token
export SONAR_CERT_URL=https://secret-url-to/ca.crt # optional
podman-compose -f dev/sonar/docker-compose.yml up --build
FAQs
[![Build Status](https://app.travis-ci.com/RedHatInsights/patchman-ui.svg?branch=master)](https://app.travis-ci.com/RedHatInsights/patchman-ui) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)]
The npm package @redhat-cloud-services/frontend-components-inventory-patchman receives a total of 66 weekly downloads. As such, @redhat-cloud-services/frontend-components-inventory-patchman popularity was classified as not popular.
We found that @redhat-cloud-services/frontend-components-inventory-patchman demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.