security issue with built images

Apparently our build process pulls in oldish packages with a potential security impact. I'm not overly worried about container security, but it would be good if we can easily fix this.
 Path : /home/xyz/.local/share/containers/storage/overlay/.../diff/usr/lib/x86_64-linux-gnu/libcurl.so.4.8.0

Installed version : 7.88.1

Fixed version : 8.4.0

Path : /home/xyz/.local/share/containers/storage/overlay/.../diff/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.8.0

Installed version : 7.88.1

Fixed version : 8.4.0

And
 Path : /home/xyz/.local/share/containers/storage/overlay/.../diff/usr/bin/curl

Installed version : 7.88.1

Fixed version : 8.4.0

Update: I thought that switching from the docker.io/golang:1.20 container to docker.io/golang:1.21 would help, but the issue is still there. Looking deeper.

Approaches:

update curl/libcur4 -- result already at latest, but not new enough for security check.
remove curl/libcur4 -- old version curl/libcur4 still in the overlay filesystem, fails security check.
use image docker.io/golang:1.21-alpine -- passes security check and still functions. The only problem is that the pod log is now rather noisy.

Using alpine image for now.  Eventually, the default curl/libcurl may be updated, at which time we can switch back.

Resolved with this pull request: https://github.com/sustainable-computing-io/susql-operator/pull/53


Suggestion: Bot prompt respond messages

Story
As a user, I want to receive bot message responds at appropriate timing.
Current iteration
There are about 4 different messages, which can be confusing which messages are responding for which.

Screenshot

We could improve this user experience. ✨
Suggestion
Send very few - about two (2) types of respond messages after user submits a prompt.

Pending message. Examples:

Acknowledging: Prompt received. 🚧 Generating image...
Optional: message is deleted after image generation is done
Bonus: message can only be seen by the user.

Blue willow example

WOMBO Dream example

Message sent ALONG with the image generated result

User name and prompt: @<tag username> prompted: <user's prompt> OR
Prompt then tag User name: 🖼 <user's prompt> - @<tag username>
Optional: include negative prompt
Optional: include "preset" used (relating to issue #7 )

Blue willow example

WOMBO Dream example

The following is added through PR #10

Acknowledging: Prompt received. 🚧 Generating image...
Tagging of user name, including prompt text of generated image
Default negative prompt is readjusted


Cyclic cartoon ribbon not connected

1HVZ, a defensin, has a kind of cyclic ribbon which is not connected nicely. I can imagine if this is not really a priority but I thought I'd report it anyway.

yeah, fixed in Mol* :)


ATLAS interfaces simplification

Companion PR of https://github.com/JCSDA-internal/oops/pull/1726.
Thanks @travissluka for this branch, I tested it successfully on my workstation. I'm opening the PR to make sure CI tests are passing.
NB: bundle/CMakeLists.txt should be reset before merge.

This PR can be merged now.


API v2: protodesc uses empty non-nil package when creating FileDescriptorProto for a file with no package

What version of protobuf and what language are you using?
v1.25.1-0.20200805231151-a709e31e5d12 (latest as of August 5th).
It's also in the latest release (v.1.25.0) and in current master (as of this writing).
What did you do?
Used protodesc.ToFileDescriptorProto with a FileDescriptor that had no package (e.g. no package statement in the source file; file.Package() returns empty string).
What did you expect to see?
A descriptor proto where the Package *string field is nil. That is what the actual descriptor proto looks like as parsed/produced by protoc.
What did you see instead?
A descriptor proto where the Package *string field is non-nil and points to an empty string.
This code
	p := &descriptorpb.FileDescriptorProto{
		Name:    proto.String(file.Path()),
		Package: proto.String(string(file.Package())),
		Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions),
	}

should probably instead look like so
	p := &descriptorpb.FileDescriptorProto{
		Name:    proto.String(file.Path()),
		Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions),
	}
	if file.Package() != "" {
		p.Package = proto.String(string(file.Package()))
	}

Seems reasonable. Would you like to contribute a fix?

Seems reasonable. Would you like to contribute a fix?

@dsnet, I might. I am knee-deep in a fairly major refactor of some of my stuff right now. Before I try to contribute anything, I'll probably try to get to the end of that and see if I find anything else.


fix(universal-date-input): fixed minDate processing logic

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.006%) to 84.498%

Totals

Change from base Build<PHONE_NUMBER>:
-0.006%

Covered Lines:
9380

Relevant Lines:
10267

💛  - Coveralls


XPath Fix

This PR fixes a bug in the XPath parser involving the '..' abbreviation.

These changes look good, merging.


ADS: Fix Site Location permission title

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2870   👈

This comment was auto-generated by Graphite.


2.5D Demo with GDScript ERROR

Godot version:

3.3
OS/device including version:

Win10, PC, GLES2, Nvidia Geforce RTX2070
Issue description:

I just started the project and didn't do anything

Steps to reproduce:
restart and reproduce
Minimal reproduction project:

Steam downloads Godot, the first project

This is a bug in that demo and should be reported on https://github.com/godotengine/godot-demo-projects.
But it was already fixed yesterday with https://github.com/godotengine/godot-demo-projects/pull/558.

ok,the demo project from steam is old version.
there is no problem with the project downloaded from github

Yeah I just updated the demos on Steam 10 minutes ago, you should get the update soon.


Truncate channel when switching to another channel

Now that we don't run a 10 second timer to trim messages, idle channels do not get trimmed if you load a lot of history and then switch to another channel.

So, one thing that I find really annoying on The Lounge is that when you switch channels, you lose your scroll. It's a shame because I believe it's not like this by default, it's something we force, no?
I'd like that when you switch channels, if you were not stickied at bottom, your scroll will be preserved.
Then the issue is what if I was not at bottom, switched, never came back. I'd say history of non-stickied idle channel should be trimmed but less often, like with a 1000 buffer (instead of 100) or something.
Better but more complicated would be that a post-IntersectionObserver world would load in both directions, so that if you're not at bottom, you scroll down and more messages get loaded. That would be sweet.


Added referrer List Card with all the resources

I have added a card to display list of referrers following exactly how list of popular pages was already done. Would appreciate if you have a look :)

Would you mind pasting a screenshot of how it looks on your machine? I don't have mine configured with good credentials right now so a screenshot would make it a lot easier for me to approve.
Thanks so much for your work on this!

Thank you so much for having a look! I have pasted some screenshots. Would be happy to make any changes if required.
Thanks.


\today latex alternative to set date and time

Hello, is there something to insert date and time in the document ? this is done in latex with \today.

There is a pull request open for displaying the date, although I don't know how much it can do.

My use case: A template that takes input like "2023-04-01" and can output "April 1, 2023".

@tv42  - This sounds like two separate commands.

Something to take the \jobname ('file name')
Date commands to read a format.

https://github.com/typst/typst/pull/435


Tick-tock Export Headers

This is related to: https://github.com/ignition-tooling/release-tools/issues/711
Description
ign-cmake dynamically configures an Export.hh file in the public headers of a package. This Export.hh file actually wraps and comments on a lower level dynamically generated detail/Export.hh file that is generated using GenerateExportHeader.
The fact we're using an external CMake library to generate the detail/Export.hh makes it hard to ticktock the lower-level CMake macros.
So instead, this PR defines IGNITION_ prefixed export headers in the configured Export.hh if a target is prefixed with gz that allow downstream users to use the IGNITION_ prefixed versions of the export macros, while leaving those in detail/Export.hh alone (except for IGN_DEPRECATED_ALL_VERSIONS, which doesn't seem to be used anywhere (at least in the core libraries.)
If the library target is ignition prefixed, then no extra macros generate.
Notes
This does nothing new at the moment, but once target names start getting migrated to gz- prefixes, and we start using GZ prefixed macro names, everything will be :sun_with_face: :rainbow: because of this.

Should I just make every EXPORT_BASE point to a GZ_ prefix, and remove the logic?

Should I just make every EXPORT_BASE point to a GZ_ prefix, and remove the logic?

I decided to do that. https://github.com/ignitionrobotics/ign-cmake/pull/249/commits/92a8d3857a864192d9cb7663559370e1056ac54d


Glitch loader v2

Reworked version of #367.

Models glitch loader off of ml4gw dataloading tools.
Implementation would be cleaner if instead of a directory of files for each ifo, we had individual files containing datasets of glitches for each ifo. I think I'll leave this to a future PR since this is working.

Throughput is more or less equivalent to before (~1400 samples per second on dgx boxes).

setting glitch_frac = 0.0 should turn of glitch sampling and reproduce previous behavior (will add test for this)

@wbenoit26 Let me know if you have any feedback. Going to launch a full pipeline run with an ad-hoc glitch_prob choice to ensure things don't break and results look reasonable.


perf: using pure setter with OnChange hook

Tracking

[ ] nz-affix (#708)
[ ] nz-alert
[ ] nz-link
[ ] nz-anchor
[ ] nz-avatar
[ ] nz-back-top
[ ] nz-badge
[ ] nz-breadcrumb-item
[ ] nz-breadcrumb
[ ] nz-button-group
[ ] nz-button

...
What problem does this feature solve?
Single check
Currently we're using manual change guarding in several places like:
set nzProp(value: Type)
  if (this._prop === value) {
    return;
  }
  this._prop = value;
}

This could introduce extra checking for _prop since Angular itself will check all the inputs (if ngOnChange exists).
Batch update
Currently we're using setter with side-effects, like:
set nzProp1(value: Type)
  this._prop1 = value;
  this.updateStatus();
}

set nzProp2(value: Type)
  this._prop2 = value;
  this.updateStatus();
}

It would lead to redundant update when changing multiple properties:
comp.nzProp1 = newValue1;
comp.nzProp2 = newValue2;

The updateStatus have been called twice, which is unnecessary.
Unified handling
In some components there're recording of life-cycle status, like:
ngOnInit() {
  this._inited = true;
}

set nzProp(value: Type)
  if (this._inited) {
    this.updateStatus();
  }
}

Which leads to extra condition flow (not a real performance problem, but maintenance problem)
Solution
Make setter being pure (and do not use accessor whenever possible) while perform side-effects only in ngOnChange, like:
set nzProp1(value: Type)
  this._prop1 = value;
}

set nzProp2(value: Type)
  this._prop2 = value;
}

ngOnChange(changes: SimpleChanges): void {
  if (changes.nzProp1 || changes.nzProp2) {
    this.updateStatus();
  }
}

Since OnChange will also be called before OnInit, no need for special handling in setup.
Depends on #459.
What does the proposed API look like?
N/A.

Closing this cause related pr had been merged.


add a property to enable/disable the kafka cf auto-configuration

as subject, this pr resolves https://github.com/Azure/azure-sdk-for-java/issues/30574

API change check
APIView has identified API level changes in this PR and created following API reviews.
spring-cloud-azure-autoconfigure

/azp run java - spring - tests

/check-enforcer override

@yiliuTo, will the issue https://github.com/Azure/azure-sdk-for-java/issues/30397 still exist if users want to use Kafka with Storage?
Users add storage and Kafka in their dependencies and enable the Kafka autoconfiguration. Will the same error persist?

Yeah, the issue can still happen when our Kafka autoconfiguration getting enabled for a non-Event Hubs broker, so developers can choose to use this property to disable our autoconfiguration.


Show deprecation warning and message in GraphQL schema explorer

Insomnia Version: 7.0.5
Operating System: Ubuntu 18.04

Details
I noticed that the GraphQL editor has an awesome deprecation-warning built-in, but the deprecation warning is not shown in the schema explorer. I think that would be a nice edition - preferably with a big fat warning icon :)

Oh, good idea!

@pingvinen, I like it with examples cause I have never seen any deprecation warning in the GraphQL editor. I can work on that if given steps to produce a deprecation warning. Thanks

@elemanhillary thanks for offering to work on this. The spec is [here].

Hey @gschier @nijikokun
I'm checking this issue. I hope is not too late :D


[Documentation] Add a note about units

Currently, PyQTorch uses atomic units. This probably deserves to be stated in the docs.

Solved in #237


feat: better info tracking in alias

This lets you hover over the identifiers in alias to see the types of things, and go to definition works.

bors merge


Fix for android

#2
In android, "setBrightness" has to be set from 0 to 1 or -1
-1 will return the system default.
Android has the system default value which is from 0 to 255 value.
So, I added new function that can get system default.

Thank you! This is awesome work!
But before merging PR into master, would I help me correct the code style follow up to the Airbnb js guide?
I appreciate your help!


Upgrade Gson version 2.8.6 to 2.8.9

Fixes #13607
Master Issue: #13607
Motivation
see #13607
Modifications

Upgrade Gson version 2.8.6 to 2.8.9

Verifying this change

[x] Make sure that the change passes the CI checks.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API: ( no)
The schema: ( no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: ( no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation
Check the box below or label this PR directly (if you have committer privilege).
Need to update docs?

[x] no-need-doc

we should also change version in license file

done.

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


Correcting argument order in assertEqual and XCTAssertEqual

~There are some spacing issues in a few of the changes, I'll fix that soon.~ Done.
A doubt I had was all XCTAssertEquals in LossTests have the expected before actual, Should i update that as well?
I'd just like to get it right this time and reflect the changes across all files needed, So that we shouldn't have to refactor this repeatedly.
Fix: #390
cc: @rxwei

@Shashi456 the loss tests are fixed in #356. I'll add documentation to finalize that PR today.

@eaplatanios sorry should've seen that.

@Shashi456 Did you test locally?

@rxwei I didn't do it on the latest toolchain, I'll fix this asap.

@rxwei Fixed. Build and Test passes on latest nightly.

@eaplatanios could you also put a kokoro run on this ?


User/alexlam/43856157 dev 20230417

Removed workarounds for ADO b#43856157 because the two PRs on the Guardian folks' side that can fix this bug have been deployed.
As a side note, I've verified that auto bug filing via TSA is still partially blocked because the known bug that causes PREFast@3 to fail for us is still hitting us.
How built:

Changes built fine in private branch.
These changes will go through normal PR validation.

How tested:
The following pilot run shows that, after removing the workarounds for 43856157, PREFast (v3 for MRT and v2 for elsewhere) can still run successfully: https://microsoft.visualstudio.com/ProjectReunion/_build/results?buildId=68642161&view=results.

A microsoft employee must use /azp run to validate using the pipelines below.
WARNING:
Comments made by azure-pipelines bot maybe inaccurate.
Please see pipeline link to verify that the build is being ran.
For status checks on the develop branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.
For status checks on the main branch, please use microsoft.ProjectReunion
(https://dev.azure.com/ms/ProjectReunion/_build?definitionId=391&_a=summary)
and run the build against your PR branch with the default parameters.

/azp run

/azp run


Assigning RBAC Roles via Powershell or azure cli

Is it possible to assign RBAC roles to management groups via powershell or the azure cli? I don't see this clearly defined anywhere.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1527b80e-5270-b5f0-9034-747c6f92ae4e
Version Independent ID: 50b9882c-dcb0-ecc1-241b-1361ad2fff1e
Content: Organize your resources with Azure management groups
Content Source: articles/azure-resource-manager/management-groups-overview.md
Service: azure-resource-manager
GitHub Login: @rthorn17
Microsoft Alias: rithorn

@StarkCaptain Thanks for the feedback. We are actively investigating and will get back to you soon.

@StarkCaptain, yes this is supported. Here are a few resources. please let me know if you have any followup questions.

https://docs.microsoft.com/en-us/azure/role-based-access-control/tutorial-role-assignments-user-powershell
2.https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-powershell
https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-cli

@StarkCaptain We will now close this issue. If there are further questions regarding this matter, please reply to @femsulu and we will gladly continue the discussion.


Handle failing simulated primitives in BitBltPlugin

When a simulated primitive is failing, call primitive 255 from the image (in InterpreterProxy). This raises a MetaPrimFailed in the VM code, which unwinds the stack to the frame that called the primitive in the first place. Every such frame has a fallback stack frame executing the primitive fallback code in the image.
This commit does not contain a modified image (VMMaker needs two updated methods, see http://forum.world.st/The-Inbox-VMMaker-MattSpr-361-mcz-tp4822989.html).
These changes could affect #28.

I'd like to get the benchmarking page set up before this is merged

And benchmarks for this would be good, too.

Does anybody have an idea why the ARM-build for the latest commit did not succeed? The small change should have only affected the linux build - if at all.

There is a transient issue with arm builds not working every now and then. Maybe they should be allowed failures.


The need for multiple output paths?

I have the following use case,
I am using React and along with that I have certain CSS files as dependencies. I have the following distribution folder tree:
-- dist/
    --js/
    --css/
    --media/

Since, now I would like to include CSS into the build system, but now since I have my output path in the webpack.config.js to ./dist/js, so even my CSS files are being generated there.
I think it is important to have multiple output paths. If not, could anybody suggest me any other workflow?

output: {
  path: path.resolve(__dirname, "./dist"),
  filename: "js/bundle.js"
},
... "css/bundle.css"

Hi, this is not clear exactly how to work. Also note that I have multiple entry points so here is what my webpack.config.js looks like:
/**
 * StoryXpress Webpack configuration
 */
var webpack = require('webpack');

var CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin;
var ExtractTextPlugin = require("extract-text-webpack-plugin");

var entryPointsPathPrefix = './src/javascripts/pages';
var WebpackConfig = {
  entry : {
    Login: entryPointsPathPrefix + '/1.jsx',
    Create: entryPointsPathPrefix + '/2.jsx',
    Styles: entryPointsPathPrefix + '/3.jsx',
    Types: entryPointsPathPrefix + '/4.jsx'
  },

  // send to distribution
  output: {
    path: './dist/js',
    filename: '[name].js'
  },

  module: {
    loaders: [
      // Babel transformer (the one and only)
      { test: /\.js(x)?$/, exclude: /node_modules/, loader: "babel-loader"},
      { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader")}
    ]
  },

  resolve: {
    // resolve file extensions
    extensions: ['.jsx', '.js', '']
  },

  plugins: [
    // separate common code
    new CommonsChunkPlugin('bundle.js'),
    new ExtractTextPlugin("[name].css")
  ]
};

module.exports = WebpackConfig;

How do I specify file based outputs here?

+1, I don't understand the example you provided

The example from @sokra works for me :+1:
It works like this @matthewmueller
entry: {
  'build/application/bundle': './src/application` // will be  ./build/application/bundle.js,
  'build/library/bundle': './src/library` // will be  ./build/library/bundle.js
},
output: {
  path: './',
  filename: '[name].js'
}

@sashless niceee :heart_eyes: thanks!

@sashless  It sloves my problem,thanks.

@activatedgeek you sloved the problem?  i think, i meet the same problem, but above answers don't slove my problem.
above answers, specify output files for "entry", but i want sepcify output files for "output"
for example:

entry : {
  // this file require some files(like: big.png, big.css ...)
  // don't concat in one file, when output
  'index': './src/index.js'
},
output: {
  path: './dist/'
}

//result of output path
dist/
  |-- js/index.js
  |-- css/big.css
  |-- img/big.png

@epooren replace your paths with relative paths instead of file names

@activatedgeek thanks. Before i don't know that file-loader has name option.

This solution work for the entry chunks but I still have the problem when I use webpack.ensure method.

./webpack.conf.js

    var entry = {
        './build/admin/admin.js': './src/admin/main.es6')
    };

    var output = {
  		path: './',
  		filename: '[name].js'
	};

./src/admin/main.es6

        require.ensure(['./test'], (require) => {
            const test = require('./test')['default'];
            test.print();
        }, 'test')

./src/view/test.html

	<script src="/assets/admin.js"></script>

Admin chunk is perfectly build into the correct location but the test chunk will be created into ./ and I would like to have it into ./build/core/
In this case I can modify my webpack.conf.js :
    var output = {
  		path: './',
  		filename: '[name].js',
        chunkFilename: './build/core/[name].js'
	};

By doing that, the webpack.ensure will not be able to find the test chunk because the location is now
	/build/core/test.js

and not
	/assets/test.js

like I would like
My question is :
How can I change the location of my non-entry chunks without affect the filename ?

But the webpack-dev-server will not work .

+1 for multiple output files.
Also want to ask @sokra what did he mean by his obscure answer. It is quite tactless of him to toss some info and disappear from conversation.

@sashless thank you very much!

Hello,
When I'm runing only webpack and the directories bar/dist/bundle and foo/dist/bundle are created, but when I'm runing webpack-dev-server the log in terminal is ok, but nothing folder dist isn't created.
Does anyone know to solve it?
My webpack-confing.js bellow.
var path = require("path");
var webpack = require("webpack");

module.exports = {
  entry: {
    "bar/dist/bundle": "./problems/bar/src/js",
    "foo/dist/bundle": "./problems/foo/src/js"
  },
  output: {
    path: path.resolve(__dirname, 'problems'),
    filename: "[name].js"
  },
  module: {
    loaders: [
      {
        loader: 'babel-loader',
        exclude: /node_modules/,
        test: /\.js$/,
        query: {
          presets: ['es2015', 'stage-0'],
        },
      }
    ]
  },
  stats: {
    colors: true
  },
  devtool: 'source-map'
};

My script in package.json bellow
"scripts": {
  "start": "webpack --progress --colors --watch",
  "server": "node_modules/webpack-dev-server/bin/webpack-dev-server.js"
},

@igorapa Please note that webpack-dev-server runs in-memory. It shouldn't generate any file output.

@bebraw Then I need run both? Because I'd like to create this directories and have the autoreload.
With this command: "start": "webpack --progress --colors --watch", I have only the watch.
Do you have some alternative?

@igorapa Why do you need the file output?

@bebraw I have this project https://github.com/igorapa/toy-problems
I configured so that each problem has its own folder dist.
This dist directory is created when I run for example webpack.
With only webpack I can have the watch, but can not get the browser autoreload so installed webpack-dev-server  to have autorelaod, but as you said, it does not generate these folder.
I just wanted a way to get the watch to run whenever any saved file and also have autoreload in the browser, I do not know the best way to implement this.
If you can clone my project to do a test or to send a PR, I'll be more than happy :smile:

@igorapa I am still missing something obvious. Couldn't you use browser-sync-webpack-plugin with webpack-dev-server? I wouldn't know what to PR.

@bebraw Nice, this has solved my issue, but I left the webpack-dev-server out , I'm using only the bowser-sync-webpack-plugin  as you said.
If you want  do see, jump to my repository: https://github.com/igorapa/toy-problems
Ps: PR === "Pull Request". :smile:

@sashless Do your way work with other file types? Say i want to process the SCSS in a folder instead of requiring them in the js file, something like this:
entry: {
  'build/application/bundle': './src/application', // will be  ./build/application/bundle.js,
  'build/library/bundle': './src/library`'// will be  ./build/library/bundle.js,
  'build/assets/app.core': './src/assets/theme/app.core.scss`'// Should be  ./build/assets/app.core.css,
},
output: {
  path: './',
  filename: '[name].[ext]'
}

However idk if the output filename need to change the extension for a replacement query, is it [ext] the one to replace for the extension of the different files?, does webpack even support dynamic extensions?

@Luchillo You can add the extension to the entry keys. This worked for me:
entry: {
  'js/app.js': './web/static/js/app.js',
  'js/vendor.js': ['react', 'react-dom'],
  'css/app.css': './web/static/css/app.scss',
},
 output: {
  path: "./priv/static",
  filename: "[name]",
},

Don't forget to update your plugins as well, e.g.
plugins: [
  new webpack.optimize.CommonsChunkPlugin({name: 'js/vendor.js', children: true}),
  new ExtractTextPlugin('css/app.css', { allChunks: true }),
],

Awesome, what does that allChunks option in the ExtractTextPlugin?

@Luchillo From the docs:
allChunks extract from all additional chunks too (by default it extracts only from the initial chunk(s))
Can't tell you more than that :confused:

I guess that impacts bundle size, what about performance, that should take longer, isn't?

@manubo Man putting the file ext in the entry key is brilliant, however i had the intent of using it with scss, but i haven't been unable to set up the input and loaders correctly, it alwas output some kind of js, i think it's outputting the embedded css instead of normal css.

@Luchillo I think I found a better solution. No need to specify an entry point for stylesheets when using the ExtractTextPlugin:
entry: {
  'js/app': './web/static/js/app.js',
  'js/vendor': ['react', 'react-dom'],
},
 output: {
  path: path.resolve(__dirname, 'priv/static'),
  filename: "[name]-[hash].js",
},

plugins: [
    new ExtractTextPlugin('css/styles.css', { allChunks: true }),
],

You will need to require your root stylesheet, from which you @import all dependent stylesheets. E.g in web/static/js/index.js
import '../css/style.scss';

That's exactly what i don't want, since each time you save the file that made the import it will call the css loader even if you don't want it, i really want to be able to define it as an entry to separate my compilation of ts and scss apart.

The docs say that webpack will accept an array of configurations. I use this feature for building my app.js and specs.js files with completely different settings.
My webpack.config.js looks something like this:
module.exports = [
  {
    entry: './app/app.js',
    output: {
      filename: './app.build/app.build.js'
    }
    // custom app settings
  },
  {
    entry: './specs/specs.js',
    output: {
      filename: './specs.build/specs.build.js'
    }
    // custom specs settings
  }
];

I'm using webpack-merge with env vars to change the config, you're saying i could use first config in that array for the js files and the second one for the css files and both would be used at the same time when calling the webpack-dev-server?

The thing is i have the structure like this:
// webpack.common.js
module.exports = {
...
}

// webpack.dev.js
var commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev
module.exports = webpackMerge(commonConfig, {
...
}

So i guess i would have to do something like:
// webpack.common.js
module.exports = [{
  // Js one in index 0
}, {
  // Css one in index 1
}]

// webpack.dev.js
var commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev
module.exports = [
  webpackMerge(commonConfig[0], {
    // Merge only the js part of commonConfig
  }),
  commonConfig[1]
}

I agree this is a great option for building the files side by side when i need scss output aside of the js output.
But with this it becomes hard to make the HMR work and index.html tag with the css output will have to be hard-coded in the template of the HtmlWebpackPlugin since the config for this plugin is in the firs config.
Do you know how to separate the scss into another config, import output into the html template of the first config, and keep HMR working even with the second config?

@sashless
Your solution is nice, however bundle resources are still in root of output directory.
So for example I have fonts which after doing webpack stuff are still in the root of output and I want them in some specific location in there like: dir/resources

@tscislo I think that's the purpose of the copy-webpack-plugin.

I fix that however now I have a problem that when I define my output like this:
entry: {
'application/bundle': './src/application', // will be  ./build/application/bundle.js,
},
output: {
path: 'build',
filename: '[name].build.js'
}
with
new HtmlWebpackPlugin(
    {
        chunks: ['build/application/bundle'],
        template: './src/app/background/background.html',
        filename: ./'build/application/index.html',
        inject: 'body',
        hash: true
    })

Then in index.html I got he following reference to my build.js

How to get rid of this '../build/application/' part of the path since my index.html is in the same folder as my bundle?

So to clarify, index.html is in same folder as bundle.build.js? Well, then your entry should be just bundle instead of application/bundle.

I want it to be in application subdirectory for a purpose

So you have a build folder, within you have an application folder, in it you have both files.
So the bundle path in the HtmlWebpackPlugin should be just bundle, right?
Well, the plugin output path is the same as the webpack config, so first your filename should be application/index.html.

@fredericgrati how did you solve this promblem?

I don't remember to have solved this problem with ensure method...
I don't use/need it  :)

Different entries indicates different pages, different page should build ALL resources to different output directory. If there is a substitution named entryName everything will be nice ^!^
entry: {
  'pageA': './src/pageA/main.js',
  'pageB': './src/pageB/main.js',
},
output: {
  // output: /build/pageA/, /build/pageB/
  path: 'build/[entryName]/'
}

Is that from Webpack 2? i've never knew that we could use the entry name as parameter of the outputh path.

Of course not, it was just my idea.  @Luchillo

Oh then let me ask, how would we define the output file name? would it be the same as the folder like build/pageA/pageA.js or something alike? unless we define directly the entry's output path that would just make the imports 1 folder longer.
I think maybe would be more beneficial to have a general output (default) and the entry if needed could define it's own output path:
entry: {
  'pageA': './src/pageA/main.js',
  'pageB': {
      input: './src/pageB/main.js',
      output: 'build/pageAfolder/' // In this case pageB output overrides the output default
  }
},
output: {
  // Default output 'build/'
  path: 'build/'
}

entry: {
  'pageA': './src/pageA/main.js',
  'pageB': {
      input: './src/pageB/main.js',
      output: 'build/pageAfolder/' // In this case pageB output overrides the output default
  }
},

I like this way. In my project i generate entry object dynamically, and want to set output folder for each input dynamically too. And all additional (not primary) chunks (should be relative to output path of main chunk.

@sashless  ; Thank :D ! ... !!!

+1 for being able to specify output for each entry (like @Luchillo suggested).
It makes maintaining sub-domains (usually mapped as sub-folders in shared-hosting scenarios) easy, especially when each sub-domain could potentially have different styling and set of pages. Relative path resolution of the assets within the entry's output folder could address these kind of scenarios.

I have the need for different output configurations for different entries. I want to give different names as output.library. I have an entry for the application code and two entries for locale specific translations. I'd like to publish the two locale specific entries with the same output.library name, but the entry for the application. Currently I need to hack around this, by using the name - which should be output.library - directly in my translations like module.exports['my-module-name'] = {}.
Use case with description can be found here: https://github.com/donaldpipowitch/webpack-i18n-example

I just saw that you can use ouput.library = ["MyLibrary", "[name]"]; where [name] is the name of my entry chunk. This will not work for me as my names are used like file paths. (Just like in this example.)
Say my entries are:
entry: {
  foo: "./some-file",
  bar: "./some-other-file"
},

I'd need something like this:
ouput.library = {
  foo: 'my-library',
  bar: 'my-module-name'
};

or
ouput.library = (name) => {
  switch(name) {
    case 'foo':
      return 'my-library';
    case 'bar':
      return 'my-module-name';
  }
};

I could imagine using something like this as well for the whole output:
config.ouput = (name) => {
  switch(name) {
    case 'foo':
      return { /* output for 'foo' */ };
    case 'bar':
      return { /* output for 'bar' */ };
  }
};

@Luchillo's example would also work.
@bebraw Could this issue be re-opened?

After my last comment above, came across this multi-compiler option (ref. example here) that worked great for me (in being able to configure multiple outputs, multiple configurations, multiple sub-folders etc, each with its own specific configuration as well as inheriting from common configuration.).

I tried it with multi-compiler, too. But sadly it didn't work for me. It looks like I can't share entry chunks between multi-compiler configs, but I need this to pass all scripts I need into HtmlWebpackPlugin (example).

i dont know guys... but something lead me here when i was trying to figure out a way of using two output configs...
in my case its not only changing the output dir or name.. as i am also setting Library..libraryTarget.... so on... what i am doing is im housing my CLI in the same repo as the source.. (as the CLI does require() the main module)... so i get it working by module.exports = [main, cli] exporting as an array... and it works :D not sure if it is official... or if will get dropped in the future thou...

That is the official multi-compiler config mentioned in the last two comments ;)

Actually, there two questions here:

how to make  entry file multiple output path like this: folder/entry.js
how to make chunkFile multiple output path like this: folder/chunk.js

I just found a solution for this:

generate entry file dynamically, result like this:

entry: {
  "index/index": "your actual entry file path",
  "home/index": "your actual entry file path"
}

store all your chunk files in some folder, output config would look like this:

output: {
    path: path.join(__dirname, publicPath),
    filename: '[name].js',
    chunkFilename: "chunk-[id]/[chunkhash:8].chunk.js",
    // make sure that publicPath end up with /
    publicPath: (publicPath+"/").replace(/\/\/$/, '/')
}

It's easy to understand in entry case.
Within chunkFile case, you really don't have to care about where chunkFile reside, webpack does the rest.
Full code is here: webpack.config.js

What about having [chunkhash] for some entries and not for others? I think webpack cannot cover that use case.

Here is a proof of concept project for Angular 4 that demonstrates some of the findings above:
web-worker-in-ng

My use case is an output for npm, and for a dir for a chrome extension.

What is the most simple way to get two outputs from the same entry? Do I have to use chunks?
I suppose I could just to a cp in my npm scrip.

@tscislo  how did you solve this promblem?
new HtmlWebpackPlugin(
    {
        chunks: ['build/application/bundle'],
        template: './src/app/background/background.html',
        filename: ./'build/application/index.html',
        inject: 'body',
        hash: true
    })

Then in index.html I got he following reference to my build.js

How to get rid of this '../build/application/' part of the path since my index.html is in the same folder as my bundle?

https://github.com/sueddeutsche/chunk-rename-webpack-plugin
It's great plugin which solves some issues from this thread.

+1 to the ability of providing an output for each entry

@jdomingorebollo I wrote a plugin to do this after much searching around without finding a solution.

Node package here

Explanatory blog post here

@sashless - Thanks for this - https://github.com/webpack/webpack/issues/1189#issuecomment-156576084
👍🏻👍🏻👍🏻

No plugins needed for multiple output paths :)
`
const path = require('path');
const PATHS = {
root: path.join(__dirname, ''),
app: path.join(__dirname, 'app')
};
entry: {
// ./build/index.js
'build/index': [
${PATHS.app}/app.js,
${PATHS.app}/app_2.js
],
    // ./library..js
    './library': [
        `${PATHS.library}/library.js`,
    ]
},
output: {
    path: PATHS.root,
    filename: '[name].js'
}

`

I finally figured out how to keep the entry names clean, while still controlling where they ended up. Utilizing some of the tricks here:
entry: {
  // ./dist/public/public-[hash].bundle.js
  public: './src/public/js/index.js',
  admin: './src/admin/js/index.js'
},
.....
output: {
  filename: '[name]/[chunkhash].bundle.js',
  path: path.resolve(__dirname, 'dist')
}

Which resulted in:

With this setup, my HtmlWebpackPlugin, CommonsChunkPlugin & friends could reference the chunks with clean descriptive names.

@sashless 's solution solves my problem.
Here is my setup:
let entry = {
 'admin/global.js': 'path-to-global.js',
 'front/global.js': 'path-to-global.js'
}

  entry: entry,
  output: {
    path: path.resolve(__dirname, 'dist/js'),
    publicPath: path.resolve(__dirname, 'dist'),
    filename: '[name].js'
  },

After build, webpack will generate 2 directories admin and front inside dist/js

So I've watched and I've watched.
Is there still no practical solution to outputting files into different directories? Not everyone (and frankly it slows the hell out of development time if you're not using the webpack-dev-server or its lot). I develop python-backed apps, so I don't really care about those things (and they're plugins anyway! So let the plugin makers deal with it, if you must)
The given solution of
entry: {
  'build/application/bundle': './src/application', // will be  ./build/application/bundle.js,
  'build/library/bundle': './src/library`'// will be  ./build/library/bundle.js,
  'build/assets/app.core': './src/assets/theme/app.core.scss`'// Should be  ./build/assets/app.core.css,
},
output: {
  path: './',
  filename: '[name].[ext]'
}

fails in webpack 4, I've tried every variant I could. Mostly due to the fact that it doesn't seem to be able to resolve relative directories anymore, even with context being set.
for instance:
entry: {
    "example/index/static/js": path.resolve("src/index/"),
    "example/admin/static/js": path.resolve("src/admin/"),
    "example/teams/static/js": path.resolve("src/teams/"),
    "example/reports/static/js": path.resolve("src/reports/"),
  },
  output: {
    path: path.resolve(__dirname),
    filename: "[name].js",
    publicPath: "/static/[ext]",
  },

fails. It follows the exact same idea as the solution above.
Is this not intended to be addressed? I can't even find a good community plugin and to be honest this seems like an oversight.

Hello, Team
I need your help!!
I need to  create multi output folder structure similar to the following screenshoot:

Into the  "/dist/" I would like to create three folders with images folder, css folder, js folder.
My webpack.config.js  looks something like this:
`
var path = require("path");
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const FileManagerPlugin = require('filemanager-webpack-plugin');
const extractCSS = new ExtractTextPlugin("css/[name]-1.0.0.css");
const extractSASS = new ExtractTextPlugin("es/[name].css");
module.exports = function (env) {
var isProd = false;
if (env != null && env.production) {
isProd = true;
}
var jsDev = "./js/[name]-bundle.js";
var jsProd = "./js/[name]-" + date_string() + ".js";
var configJs = isProd ? jsProd : jsDev;
return {
context: path.resolve(__dirname, "src"),
entry: {
specials: './js/specials.js',
checkout: './js/checkout.js',
mobile: './js/mobile.js',
screen: './js/screen.js',
custom: './js/app.js'
},
output: {
path: path.join(__dirname, "dist"),
filename: configJs
},
module: {
rules: [{
test: /.css$/,
use: extractCSS.extract({
fallback: "style-loader",
use: "css-loader"
})
},
{
test: /.scss$/,
use: extractSASS.extract({
fallback: "style-loader",
use: ["css-loader", "sass-loader"]
})
},{
test: /.(jpg|svg|png|gif)$/,
exclude: /fonts/,
loaders: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: './images/',
publicPath: ''
}
}]
}, {
test: /.(eot|svg|ttf|woff|woff2)$/,
exclude: /images/,
loader: 'file-loader',
options: {
name: 'fonts/[name].[ext]',
publicPath: ''
}
}
]
},
plugins: [
extractSASS
]
};`
Any help will be appreciated,
Thank you,

Have you tried to create one webpack config as a shared object, then three configs that will inherit from the base and define the differences? That is how I would do that...

I've tried, but I have not achieved the expected result
Thank you for your answer

You could try to use webpack through gulp or grunt which would probably
simplify things, but obviously at the expense of "one more" tool in your
project.
Den søn. 16. sep. 2018, 23:46 skrev webfer<EMAIL_ADDRESS>
I've tried, but I have not achieved the expected result
Thank you for your answer
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/1189#issuecomment-421838946,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABTQPeNkQexdDAeA3CyCTXOMSFiLqM-Jks5ubsargaJpZM4FKjNA
.

@graknol A simple example will be very appreciated ;)

Is it really that hard and "out of the webpack design" or whatever, to just have a "output" config per entry, with one single global value? WTF

Hello, Team
I need your help!!
I need to create multi output folder structure similar to the following screenshoot:

Into the "/dist/" I would like to create three folders with images folder, css folder, js folder.
My webpack.config.js looks something like this:
var path = require("path");
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const FileManagerPlugin = require('filemanager-webpack-plugin');

const extractCSS = new ExtractTextPlugin("css/[name]-1.0.0.css");
const extractSASS = new ExtractTextPlugin("es/[name].css");

module.exports = function (env) {

  var isProd = false;

  if (env != null && env.production) {
    isProd = true;
  }

 var jsDev = "./js/[name]-bundle.js";
 var jsProd = "./js/[name]-" + date_string() + ".js";
 var configJs = isProd ? jsProd : jsDev;

  return {
    context: path.resolve(__dirname, "src"),
    entry: {
      specials: './js/specials.js',
      checkout: './js/checkout.js',
      mobile: './js/mobile.js',
      screen: './js/screen.js',
      custom: './js/app.js'
    },
    output: {
      path: path.join(__dirname, "dist"),
      filename: configJs
    },
    module: {
      rules: [{
          test: /\.css$/,
          use: extractCSS.extract({
            fallback: "style-loader",
            use: "css-loader"
          })
        },
        {
          test: /\.scss$/,
          use: extractSASS.extract({
            fallback: "style-loader",
            use: ["css-loader", "sass-loader"]
          })
        },{
          test: /\.(jpg|svg|png|gif)$/,
          exclude: /fonts/,
          loaders: [{
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: './images/',
              publicPath: ''
            }
          }]
        }, {
          test: /\.(eot|svg|ttf|woff|woff2)$/,
          exclude: /images/,
          loader: 'file-loader',
          options: {
            name: 'fonts/[name].[ext]',
            publicPath: ''
          }
        }
      ]
    },
    plugins: [
      extractSASS
    ]
  };

The entry structure looks something like this:

This "SRC" that should be create the output "dist" with three destination directories.
Any help will be appreciated,
Thank you,

I have the same issue, and i want to do the same kind of dist but i did'nt find the solution yet....anyone ?

Closing this for lack of progress.

Why would you close it? This issue needs resolved!

Having the same issue. Not sure why this was closed like that! :raised_eyebrow:

Hello,
Finally, I have a solution!

Explanation:

In the root create a folder with two files:

webpack.config.dev.js  ===> For DEV vesion, that looks something like this:

`/* CORE & LIBRARIES */
const
webpack = require('webpack'),
path = require('path'),
MiniCssExtractPlugin = require("mini-css-extract-plugin"),
VueLoaderPlugin = require('vue-loader/lib/plugin'),
autoprefixer = require('autoprefixer'),
OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");
/* FUNCTIONS */
const getWebpackParam = require('./func/getWebpackParam');
/* INSTANCES */
const CONFIG = {
HASH: 'bundle',
VERSION: 'develop',
BUNDLE: getWebpackParam('bundle') || 'all',
PATHS: {
src: path.join(__dirname, '../src'),
dist: path.join(__dirname, '../dist'),
}
};
/* ENTRIES DEFINED */
CONFIG.ENTRIES = {
'specials':           [CONFIG.PATHS.src + '/js/specials.js'],
'checkout':           [CONFIG.PATHS.src + '/js/checkout.js'],
'checkout-mobile':    [CONFIG.PATHS.src + '/js/checkout-mobile.js'],
'core-mobile':        [CONFIG.PATHS.src + '/js/core-mobile.js'],
'stores':             [CONFIG.PATHS.src + '/js/stores.js'],
'myaccount':          [CONFIG.PATHS.src + '/js/myaccount.js'],
'plp':                [CONFIG.PATHS.src + '/js/plp.js'],
'pdp':                [CONFIG.PATHS.src + '/js/pdp.js'],
'search':             [CONFIG.PATHS.src + '/js/search.js'],
'core-desktop':       [CONFIG.PATHS.src + '/js/core-desktop.js']
};
/* EXPORT CONFIGURATION */
module.exports = {
context: CONFIG.PATHS.src,
mode: 'development',
entry: () => {
return (CONFIG.BUNDLE === 'all') ? CONFIG.ENTRIES : { [CONFIG.BUNDLE]: CONFIG.ENTRIES[CONFIG.BUNDLE]};
},
output: {
path: CONFIG.PATHS.dist,
filename: '[name]/js/[name]-' + CONFIG.HASH + '.js',
},
optimization: {
minimize: true,
minimizer: [
new OptimizeCssAssetsPlugin({
cssProcessor: require('cssnano'),
cssProcessorOptions: {
discardComments: {
removeAll: true
},
zindex: false,
},
canPrint: true,
})
],
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /.css$/,
chunks: 'all',
enforce: true
}
}
}
},
resolve: {
extensions: ['.js', '.jsx', '.jsm'],
alias: {
styles: CONFIG.PATHS.src + '/sass'
}
},
devtool: 'eval',
module: {
rules: [{
test: /.(scss|css)$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader"
},
{
loader: "postcss-loader",
options: {
autoprefixer: {
browsers: ["last 2 versions"]
},
plugins: () => [
autoprefixer
]
},
},
{
loader: "sass-loader",
options: {}
}
]
},
{
test: /.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /.(jpg|svg|png|gif)$/,
exclude: /fonts/,
use: [{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
outputPath: './',
publicPath: ''
}
}]
},
{
test: /.vue$/,
loader: 'vue-loader',
options: {
extractCSS: true,
loaders: {
js: 'babel-loader',
file: 'file-loader',
scss: 'vue-style-loader!css-loader!postcss-loader!sass-loader',
sass: 'vue-style-loader!css-loader!postcss-loader!sass-loader?indentedSyntax'
}
}
},
{
test: /.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
}
]
},
plugins: [
new webpack.DefinePlugin({
'process.env.HASH': JSON.stringify(CONFIG.HASH),
'process.env.VERSION': JSON.stringify(CONFIG.VERSION)
}),
new MiniCssExtractPlugin({
filename: "[name]/css/[name].css",
chunkFilename: "[id].css"
}),
new VueLoaderPlugin()
],
devServer: {
contentBase: CONFIG.PATHS.dist,
compress: true,
headers: {
'X-Content-Type-Options': 'nosniff',
'X-Frame-Options': 'DENY'
},
open: true,
overlay: {
warnings: true,
errors: true
},
port: 8080,
publicPath: 'http://localhost:8080/',
hot: true
},
stats: {
children: false
}
};`

webpack.config.prod.js  ===> For LIVE vesion, that looks something like this:

`/* CORE & LIBRARIES */
const
webpack = require('webpack'),
UglifyJsPlugin = require('uglifyjs-webpack-plugin'),
FileManagerPlugin = require('filemanager-webpack-plugin'),
MiniCssExtractPlugin = require('mini-css-extract-plugin'),
VueLoaderPlugin = require('vue-loader/lib/plugin'),
autoprefixer = require('autoprefixer'),
OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'),
path = require('path'),
WebpackAutoInject = require('webpack-auto-inject-version')
VersionFile = require('webpack-version-file-plugin');
/* INSTANCES */
const CONFIG = {
HASH: Date.now(),
VERSION: require(path.join(__dirname, '../') + '/package.json').version,
FILENAME:{
VERSION: require(path.join(__dirname, '../') + '/package.json').version.split('.').join('_')
},
PATHS: {
core: path.join(__dirname, '../'),
src: path.join(__dirname, '../src'),
dist: path.join(__dirname, '../dist')
}
};
/* ENTRIES DEFINED */
CONFIG.ENTRIES = {
'specials':           [CONFIG.PATHS.src + '/js/specials.js'],
'checkout':           [CONFIG.PATHS.src + '/js/checkout.js'],
'checkout-mobile':    [CONFIG.PATHS.src + '/js/checkout-mobile.js'],
'core-mobile':        [CONFIG.PATHS.src + '/js/core-mobile.js'],
'stores':             [CONFIG.PATHS.src + '/js/stores.js'],
'myaccount':          [CONFIG.PATHS.src + '/js/myaccount.js'],
'plp':                [CONFIG.PATHS.src + '/js/plp.js'],
'pdp':                [CONFIG.PATHS.src + '/js/pdp.js'],
'search':             [CONFIG.PATHS.src + '/js/search.js'],
'core-desktop':       [CONFIG.PATHS.src + '/js/core-desktop.js']
};
/* EXPORT CONFIGURATION */
module.exports = {
context: CONFIG.PATHS.src,
mode: 'production',
entry: CONFIG.ENTRIES,
output: {
path: CONFIG.PATHS.dist,
filename: (chunkData) => {
if(chunkData.chunk.name === 'specials') return '[name]/js/[name]-bundle.js'
return '[name]/js/[name]-' + CONFIG.VERSION + '.js';
},
publicPath: './'
},
optimization: {
minimize: true,
minimizer: [
new UglifyJsPlugin({
cache: true,
parallel: true,
sourceMap: true
}),
new OptimizeCssAssetsPlugin({
cssProcessor: require('cssnano'),
cssProcessorOptions: {
discardComments: {
removeAll: true
},
zindex: false,
},
canPrint: true,
})
],
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /.css$/,
chunks: 'all',
enforce: true
}
}
},
},
resolve: {
extensions: ['.js', '.jsx', '.jsm'],
alias: {
styles: CONFIG.PATHS.src + '/sass'
}
},
module: {
rules: [{
test: /.(scss|css)$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader"
},
{
loader: "postcss-loader",
options: {
autoprefixer: {
browsers: ["last 2 versions"]
},
plugins: () => [
autoprefixer
]
},
},
{
loader: "sass-loader",
options: {}
}
]
},
{
test: /.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
test: /.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /.(jpg|svg|png|gif)$/,
exclude: /fonts/,
use: [{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
outputPath: './',
publicPath: ''
}
}]
},
{
test: /.vue$/,
loader: 'vue-loader',
options: {
extractCSS: true,
loaders: {
js: 'babel-loader',
file: 'file-loader',
scss: 'vue-style-loader!css-loader!postcss-loader!sass-loader',
sass: 'vue-style-loader!css-loader!postcss-loader!sass-loader?indentedSyntax'
}
}
}
]
},
plugins: [
new VersionFile({
packageFile:path.join(CONFIG.PATHS.core, 'package.json'),
template: path.join(CONFIG.PATHS.core, 'version.ejs'),
outputFile: path.join(CONFIG.PATHS.dist, 'version.json')
}),
new WebpackAutoInject({
components: {
InjectAsComment: true,
AutoIncreaseVersion: false
},
componentsOptions:{
InjectAsComment: {
tag: Build version: {version} - {date},
dateFormat: 'dddd, mmmm dS, yyyy, h:MM:ss TT',
multiLineCommentType: true,
},
}
}),
new webpack.ProvidePlugin({
Promise: 'es6-promise-promise'
}),
new webpack.DefinePlugin({
'process.env.HASH': CONFIG.HASH,
'process.env.VERSION': JSON.stringify(CONFIG.VERSION)
}),
new MiniCssExtractPlugin({
filename: '[name]/css/[name]-'+ CONFIG.VERSION +'.css',
chunkFilename: '[id].css'
}),
new VueLoaderPlugin(),
new FileManagerPlugin({
onEnd: {
copy: [{
source: CONFIG.PATHS.src + '/images',
destination: CONFIG.PATHS.dist + '/skin/es/images',
},
{
source: CONFIG.PATHS.src + '/images',
destination: CONFIG.PATHS.dist + '/mob/es/images',
},
{
source: CONFIG.PATHS.dist + '/core-desktop/css/core-desktop-'+ CONFIG.VERSION +'.css',
destination: CONFIG.PATHS.dist + '/skin/es/screen.css',
},
{
source: CONFIG.PATHS.dist + '/checkout/css/checkout-'+ CONFIG.VERSION +'.css',
destination: CONFIG.PATHS.dist + '/skin/es/checkout.css',
},
{
source: CONFIG.PATHS.dist + '/core-mobile/css/core-mobile-'+ CONFIG.VERSION +'.css',
destination: CONFIG.PATHS.dist + '/mob/es/screen.css'
}
],
archive: [{
source: CONFIG.PATHS.dist + '/skin',
destination: CONFIG.PATHS.dist + '/skin_' + CONFIG.FILENAME.VERSION + '.zip'
},
{
source: CONFIG.PATHS.dist + '/mob',
destination: CONFIG.PATHS.dist + '/mob_' + CONFIG.FILENAME.VERSION + '.zip'
}
],
delete: [
CONFIG.PATHS.dist + '/mob',
CONFIG.PATHS.dist + '/skin',
CONFIG.PATHS.dist + '/images',
]
}
    })
]

};`

In the root. create a file for define the naming and file version, looks like this:

{ 	"version" : { 		"name":      "<%= package.name %>", 		"buildDate": "<%= currentTime %>", 		"version":   "<%= package.version %>" 	} }

Finally in the root, create the main config JS. that looks something like this:

`const TARGET = process.env.npm_lifecycle_event;
if (TARGET.indexOf('dev') !== -1 || !TARGET) {
module.exports = require('./config/webpack.config.dev');
console.info('DEVELOP MODE - CONFIGURATION FROM --> ./config/webpack.config.dev.js');
}
if (TARGET === 'build' || TARGET === 'stats') {
module.exports = require('./config/webpack.config.prod');
console.info('PRODUCTION MODE - CONFIGURATION FROM --> ./config/webpack.config.prod.js');
}`
This setup workin properly  (Keep in mind installing the necessary modules defined in every file)

Just my 5 cents, imho too many answers here that try to show an example but fail to mention that this is already covered by the official docs: https://webpack.js.org/guides/production/
TLDR: Separate the environment specific bits out into separate config files whereas values can be parameterized via environment variables


Rename the default branch to main

It looks like the default branch is currently master.
Maybe it could be renamed to main for consistency with the other repos in the jupyterlab-contrib org?

Done!

The default branch has been renamed!
master is now named main
If you have a local clone, you can update it by running the following commands.
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

Thanks!
Closing as completed. We can keep the issue pinned for now if needed.


[4.3.x] Fix for ECJ - GWT conflict

- This commit keeps errai-codgen module aligned with the ecj version used by gwt-dev by doing a shade of the ecj classes contained in the gwt-dev.jar.
  I this way the rest of the WB can use a different ecj version, etc, tipically configured in the droolsjbpm-build-boostrap file."

(cherry picked from commit 207bb3059160314b7b63204da67516405ecba1ea)

Hi  @manstis @jomarko this is the peer PR for #360 with the ECJ conflict fix.
Would you mind take a look?
Thanks!


chore(core)!: update totp mutation to start kratos session

TODO

[x]  handle case if phone is not added.
[ ]  make changes in test

Notes;

Had to use the admin API for delete because we need an elevated session (TOTP verified) token, but the temporary token we are creating is not TOTP elevated.
Users have to log in again after enabling TOTP, as we are creating a temporary token and using that to validate/add TOTP. So, after validation, the temporary token becomes TOTP elevated (TOTP verified), but the original one, i.e., the one the user is using, is not TOTP elevated, so they need to log in again or verify the token via TOTP (TOTP elevate)

Users have to log in again after enabling TOTP, as we are creating a temporary token and using that to validate/add TOTP. So, after validation, the temporary token becomes TOTP elevated (TOTP verified), but the original one, i.e., the one the user is using, is not TOTP elevated, so they need to log in again or verify the token via TOTP (TOTP elevate)

that kind of make sense, but I also think that it is not really a good UX for people adding the totp through the mobile app.
we may need to work with both use case, either by providing 2 endpoints, where one is the use case where we have a kratos auth token, and one where we don't, or authToken should be optional, and we use it if it's given, or create it if it's not provided.

Users have to log in again after enabling TOTP, as we are creating a temporary token and using that to validate/add TOTP. So, after validation, the temporary token becomes TOTP elevated (TOTP verified), but the original one, i.e., the one the user is using, is not TOTP elevated, so they need to log in again or verify the token via TOTP (TOTP elevate)

that kind of make sense, but I also think that it is not really a good UX for people adding the totp through the mobile app.
we may need to work with both use case, either by providing 2 endpoints, where one is the use case where we have a kratos auth token, and one where we don't, or authToken should be optional, and we use it if it's given, or create it if it's not provided.

Made authToken optional in the validate mutation, as that is the step where the token is elevated by Kratos after validation. Removed authToken from delete and initiate mutation.

the code logics looks good overall. have comments on different improvements we should do or think about


nixos/xautolock: rewrite and add some options

Things done

xautolock is now run as a user service
added the killer and killertime options to the module
added extraOptions for additional customization

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

/cc @Ma27 @fpletz

ah this is the change we talked about some time ago?
I'll definetely try tondo a review in the nsxt days:)

On 5. Oct 2017, at 4:00 PM, WilliButz<EMAIL_ADDRESS>wrote:
Things done
xautolock is now run as a user service
added the killer and killertime options to the module
added extraOptions for additional customization
Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)
NixOS
macOS
Linux
Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
Tested execution of all binary files (usually in ./result/bin/)
Fits CONTRIBUTING.md.
/cc @Ma27 @fpletz
You can view, comment on, or merge this pull request online at:
https://github.com/NixOS/nixpkgs/pull/30128
Commit Summary
nixos/xautolock: rewrite and add some options
File Changes
M nixos/modules/services/x11/xautolock.nix (90)
Patch Links:
https://github.com/NixOS/nixpkgs/pull/30128.patch
https://github.com/NixOS/nixpkgs/pull/30128.diff
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

FYI I built a simple test VM using the following expression to confirm this change:
{
  xautolock = { pkgs, ... }: with pkgs; {
    environment.systemPackages = [ pkgs.i3lock ];

    users.extraUsers.vm = {
      password = "vm";
      extraGroups = [ "wheel" ];
      isNormalUser = true;
    };

    services.xserver = {
      enable = true;
      windowManager = {
        i3.enable = true;
        default = "i3";
      };
      desktopManager = {
        xterm.enable = false;
        default = "none";
      };
      xautolock = {
        enable = true;
        enableNotifier = true;
        locker = "i3lock";
        killer = "systemctl suspend";
        notifier = "notify-send 'abc'";
      };
    };
  };
}

@WilliButz done :-)

@Ma27 can you formalize that in to a proper nixos test that can be run by hydra?

@grahamc sorry for the delay, I've just seen your comment right now as I talked with @WilliButz about some user services and things like this.
Back in October that wasn't possible since the testing framework didn't support user services properly (see #32845), however I hope that I manage to write a test tonight %)


Add full TitleConfiguration

I'd like to suggest to add full OptionsTitle support, so I can change a Title color.
Default color looks bad on within theme and I can't change it with css.
https://www.chartjs.org/docs/latest/configuration/title.html
Thank You!

Thanks for contacting us!
Good idea, crazy how we haven't done that yet :)
I'll look into it unless you want to do it yourself in which case, please tell us.

I'll have a look and try then make pull request. If I won't it will mean I couldn't

Yes it should be enough to just add the properties. I'm actually already done pretty much (I was already working on something) so unless you've already started, I'll just submit mine 😅

Oh well I did it too, but I'll still make a pull request, so just reject it if you already made it

Thank you for quick response! I willl close issue now.

It's been merged to master. I don't know how long it will take for the nuget to be updated. If you need the changes right now, you might need to build our library from the sources.
I hope you understand :)


An extra scroll bar displays in the 'Undelete Blobs by Date' dialog

Storage Explorer Version: 1.15.1
Build: 20200904.2
Branch: main
Platform/OS: Windows 10
Architecture: ia32
Language: Czech/ German/ French/ Hungarian/ Dutch
Regression From: Not a regression
Steps to reproduce:

Launch Storage Explorer.
Open 'Settings' -> Application (Regional Settings) -> Select 'Deutsch' -> Restart Storage Explorer.
Expand one storage account -> Blob Containers.
Upload one folder -> Right click it -> Select 'Undelete -> Undelete by Date...'.
Check the dialog.

Expect Experience:
No scroll bar displays in the dialog.
Actual Experience:
An extra scroll bar displays in the dialog.

Let's make this a wee bit taller by default.


Nav login links disappear when swapping from mobile back to desktop breakdown

What I'm trying to achieve
when switching from mobile back to desktop view, the login, register, and language picker nav links should reappear.
Steps to reproduce the problem

Make browser window narrower than the mobile break point.
Make browser window wider than the mobile break point.

What I expected to happen
The nav links should re-appear.
Screenshots

System information
Operating system: MacOS High Sierra & Windows 10
Browser: Chrome 67

Can you try on a non-modified Saleor version? I cannot reproduce.
The language picker issue is mentioned in #2188.

Please reopen if this problem further exists on the latest master.


Ethercluster ETH endpoint doesn't work with Jade Explorer RPC URL

Describe the bug
Using https://eth.ethercluster.com/ doesn't pull the data for the ETHereum endpoint
To Reproduce
Go to this URL https://explorer.jade.builders/?rpcUrl=https://eth.ethercluster.com/
You'll notice it doesn't pull latest data and it errors out in the DevTools Console.
Expected behavior
It should pull explorer data for ETH chain

Thanks hon.  Here's how to use it:
https://developers.cloudflare.com/distributed-web/ethereum-gateway/interacting-with-the-eth-gateway/

@virgil @YazzyYaz  the endpoint doesn't seem to support batch
curl -H "Content-Type: application/json" -X POST --data '[{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "web3_clientVersion",
  "params": []
}]' https://eth.ethercluster.com

heres another endpoint having some issues:
https://explorer.jade.builders/?rpcUrl=https://mainnet.infura.io/v3/4a17e6f0c78347a7ac1e2434124125af

bump, still giving the same error:
$ curl -H "Content-Type: application/json" -X POST --data '[{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "web3_clientVersion",
  "params": []
}]' https://eth.ethercluster.com
{"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Request"}}%


[e2e]: go schedule main adversarial-build-provenance slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/2851474032
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.schedule.main.adversarial-build-provenance.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.schedule.main.adversarial-build-provenance.slsa3.yml
Trigger: schedule
Branch: main
Date: Sat Aug 13 09:23:17 UTC 2022

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/2855222116
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.schedule.main.adversarial-build-provenance.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.schedule.main.adversarial-build-provenance.slsa3.yml
Trigger: schedule
Branch: main
Date: Sun Aug 14 09:24:20 UTC 2022
Tests are passing now. Closing this issue.


Adding a new API to the reactor-cookie

Description

We need to override the default encoding logic of js-cookie. This is related to a migration issue reported by a customer. DIL uses encodeURIComponent to encode the cookie values. Alloy can't encode the value before calling cookie.set because an = sign will be encoded in %3D and then the js-cookie encodes the % sign. The resulting value is different thus the segmentation doesn't work correctly.
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Here is the PR which uses these changes: https://github.com/adobe/alloy/pull/978
It also includes an example of how this fixes an issue we have had with Web SDK.
This is how we would use this change.
import cookie from "@adobe/reactor-cookie";
const cookieJarWithEncoding = cookie.withConverter({
   write: (value) => {
     return encodeURIComponent(value);
   }
 });
...
cookieJarWithEncoding.set(...);

@jonsnyder Thanks for the link. It helped me understand the problem.
I saw your comment here, and I think that is the best way. You should add js-cookie as a dependency and use it inside alloy. It will increase the Tags libraries size, but from what I see, it is very lightweight (~2-3kb).


Correctly handling status codes with fetch

Fixes #4 to properly throw errors

Is the tests at https://github.com/feathersjs/feathers-commons/blob/master/src/test/client.js#L76 missing something? I'm wondering why that passed before.

Yes it must be, I looked at the tests a bit and tried to set up some failing tests around it so I could make them pass with this fix and couldn't quite sort it so just tested manually :)

Do you have a breaking service/request combination?

I was doing a find that was throwing a 500 or 401 error

Ya I was literally going to ask the same. The way the common tests are written in feathers-commons it's not easy to throw a 404 to test it. Gonna tinker with it a bit. It is kind of an important one to have a test around.

But it is throwing an error at https://github.com/feathersjs/feathers-rest/blob/master/test/client/server.js#L23 and verifying that the client resolves with that error at https://github.com/feathersjs/feathers-commons/blob/master/src/test/client.js#L76. That should at least send a 500 status code.

I added a test for this and pushed it to master.


Support Upstart

Good day.
Sorry for my bad english,  i'm in process learning. My native language russian.
I'm newbie in golang but i view your package.  I tried to do on basis this of his demon and run it in linux mint. But the work was incorrect because in linux mint based system initialisation Upstart.
Tell me please, is it possible to add in this package support for Upstart?
PS: Of course, I try to do it myself, but my skill is very small )))

I'm sorry, I did not see issue #5


Event list page shows Unsign-up button for events I am not signed up for

https://tbp.engin.umich.edu/calendar/event_list/
Several events that I am not signed up for show me an "Unsign-up" button.  The events affected seem to change sometimes when I refresh.  I believe the attendee count on the page for those events includes me.  When I click through to the event page (by clicking the event title), I am not listed under attendees and the total count is different than it was on the event list page.
Right now this is happening for:

Fifth General (count on event page is 1 greater than list page)
MRelay Dinner/Mixer (count on event page is 2 fewer than list page)
Engineering MRelay (count on event page is 1 fewer than list page)
New Initiatives IV (count on event page is 1 greater than list page)

I think I was previously seeing an Unsign-up button for Leslie Science Center as well, but that disappeared on a refresh.
None of these events show up on the My Events page or in the Events signed up for section on the Track My Progress page.
I just tried clicking the Unsign-up button for 2 of these (and left the rest alone for investigation).

For Fifth General, clicking grays for a second but the button comes right back
For MRelay Dinner/Mixer, clicking actually changed it to a "Sign-up" button, but refreshing the event list page brought the "Unsign-up" button right back.  I still don't show as signed up on the actual event.

This is a known existing bug. It's caused by Ajax issues we've not been
able to isolate that are present in events open to non-members. It likely
means someone has been making events public that shouldn't be. Closing as
duplicate
On Tuesday, April 5, 2016, pritpaul<EMAIL_ADDRESS>wrote:

https://tbp.engin.umich.edu/calendar/event_list/
Several events that I am not signed up for show me an "Unsign-up" button.
The events affected seem to change sometimes when I refresh. I believe the
attendee count on the page for those events includes me. When I click
through to the event page (by clicking the event title), I am not listed
under attendees and the total count is different than it was on the event
list page.
Right now this is happening for:

Fifth General (count on event page is 1 greater than list page)
MRelay Dinner/Mixer (count on event page is 2 fewer than list page)
Engineering MRelay (count on event page is 1 fewer than list page)
New Initiatives IV (count on event page is 1 greater than list page)

I think I was previously seeing an Unsign-up button for Leslie Science
Center as well, but that disappeared on a refresh.
None of these events show up on the My Events page or in the Events signed
up for section on the Track My Progress page.
I just tried clicking the Unsign-up button for 2 of these (and left the
rest alone for investigation).

For Fifth General, clicking grays for a second but the button comes
right back
For MRelay Dinner/Mixer, clicking actually changed it to a "Sign-up"
button, but refreshing the event list page brought the "Unsign-up" button
right back. I still don't show as signed up on the actual event.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/tbpmig/mig-website/issues/212

--
Mike Hand

Dupe of #185 to be specific (hope you don't mind the extra comment, just thought it might be useful in the future)


feat(tekton): add run description for pipeline runs

PR summary
https://github.ibm.com/org-ids/roadmap/issues/27538
Add PipelineRun description property
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Added a commit to update the Go version and golang-ci version to fix PR build issue, following https://github.ibm.com/CloudEngineering/go-sdk-template/pull/98

:tada: This PR is included in version 1.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Timezone selection

I believe it was previously possible to select a timezone for rewards calculation. Is this no longer possible?

This is no longer possible. The space required by the database for storing this data was getting too big for me to maintain for all timezones.
If you absolutely need data for a specific timezone, you can always run the tool yourself and adjust the timezones in the following places:
https://github.com/eth2353/eth2.tax/blob/main/src/indexer/balances.py#L22 (indexer change)
https://github.com/eth2353/eth2.tax/blob/main/src/api/api_v1/endpoints/rewards.py#L29 (API change)


get_all_variable_names() function should be expanded to signal wether the name is controlled

Right now, this function returns a list. Should we expand it to let a user know that it is part of the controlled vocabulary and that it may have been changed upon loading. Could return a list of two arrays or two arrays.

Hmm, we don't keep the original names. Do we want to keep them ?

I've added an option "standardize" in the LiPD load, which indicates whether we want to standardize, or not. By default, it is True

let me create a non-standard file and try it out.

Works with old files from the PyleoclimPaper repository.


docs: Document auto transform feature in parameters get_multiple()

Issue #, if available:
#562
Description of changes:

Added subsection under "Utilities > Parameters > Advanced > Deserializing values with transform parameter" titled "Infer transform from parameter suffix with get_multiple()" to document auto transform behaviour.
Checklist

[x] Meet tenets criteria
[ ] Update tests
[x] Update docs
[x] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #573 (847ce3b) into develop (1135314) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #573   +/-   ##
========================================
  Coverage    99.86%   99.86%
========================================
  Files          113      113
  Lines         4485     4485
  Branches       243      243
========================================
  Hits          4479     4479
  Misses           3        3
  Partials         3        3

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1135314...847ce3b. Read the comment docs.

Fixed both formatting issues, thanks for the review

@heitorlessa - don't forget to have a look at this one :)

yep I have not. I need to revisit the wording on that sub-section. I think we can improve there, but I need to finish the Feature Flags first as that's the biggest piece of work right now

Thanks a lot everyone - made minor changes to make it easier to find in the docs. Merging!


Stuck at "epoch information not yet available. This is expected during the initial chain-sync"

OS
Your OS: Ubuntu 18.04
Versions
The db-sync version (eg cardano-db-sync --version): {CARDANO_DB_SYNC_VERSION:-12.0.0}
PostgreSQL version: POSTGRES_VERSION:-11.5-alpine
Build/Install Method
The method you use to build or install cardano-db-sync:
Run method
The method you used to run cardano-db-sync (eg Nix/Docker/systemd/none):
following docker-compose.yml used
version: "3.5"
services:
postgres:
image: postgres:${POSTGRES_VERSION:-11.5-alpine}
environment:
- POSTGRES_LOGGING=true
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- POSTGRES_USER_FILE=/run/secrets/postgres_user
ports:
- ${POSTGRES_PORT:-5432}:5432
secrets:
- postgres_db
- postgres_password
- postgres_user
shm_size: '2gb'
volumes:
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/postgres-data:/var/lib/postgresql/data
restart: on-failure
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
cardano-node-ogmios:
build:
args:
- NETWORK=${NETWORK:-mainnet}
cache_from: [ cardanosolutions/cardano-node-ogmios:latest ]
context: ./ogmios
image: cardanosolutions/cardano-node-ogmios:${CARDANO_NODE_OGMIOS_VERSION:-v5.1.0}-${NETWORK:-mainnet}
logging:
driver: "json-file"
options:
max-size: "400k"
max-file: "20"
ports:
- ${OGMIOS_PORT:-1337}:1337
restart: on-failure
volumes:
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/node-db:/db
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/node-ipc:/ipc
cardano-db-sync-extended:
image: inputoutput/cardano-db-sync:${CARDANO_DB_SYNC_VERSION:-12.0.0}
command: [
"--config", "/config/cardano-db-sync/config.json",
"--socket-path", "/node-ipc/node.socket"
]
environment:
- EXTENDED=true
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- RESTORE_SNAPSHOT=${RESTORE_SNAPSHOT:-}
- RESTORE_RECREATE_DB=N
depends_on:
- cardano-node-ogmios
- postgres
secrets:
- postgres_password
- postgres_user
- postgres_db
volumes:
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/config/network/${NETWORK:-mainnet}:/config
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/db-sync-data:/var/lib/cdbsync
- /coiniapremssd4t/node-cardano/cardano-6.2.0/cardano-graphql/node-ipc:/node-ipc
restart: on-failure
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
hasura:
build:
context: ./packages/api-cardano-db-hasura/hasura
image: inputoutput/cardano-graphql-hasura:${CARDANO_GRAPHQL_VERSION:-6.2.0}
ports:
- ${HASURA_PORT:-8090}:8080
depends_on:
- "postgres"
restart: on-failure
environment:
- HASURA_GRAPHQL_ENABLE_CONSOLE=true
- HASURA_GRAPHQL_CORS_DOMAIN=http://localhost:9695
secrets:
- postgres_db
- postgres_password
- postgres_user
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
cardano-graphql:
build:
args:
- NETWORK=${NETWORK:-mainnet}
- METADATA_SERVER_URI=${METADATA_SERVER_URI:-https://tokens.cardano.org}
cache_from: [ inputoutput/cardano-graphql:latest ]
context: .
target: server
image: inputoutput/cardano-graphql:${CARDANO_GRAPHQL_VERSION:-6.2.0}-${NETWORK:-mainnet}
environment:
- ALLOW_INTROSPECTION=true
- CACHE_ENABLED=true
- LOGGER_MIN_SEVERITY=${LOGGER_MIN_SEVERITY:-info}
expose:
- ${API_PORT:-3100}
ports:
- 5332:3100
restart: on-failure
secrets:
- postgres_db
- postgres_password
- postgres_user
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
secrets:
postgres_db:
file: ./placeholder-secrets/postgres_db
postgres_password:
file: ./placeholder-secrets/postgres_password
postgres_user:
file: ./placeholder-secrets/postgres_user
volumes:
db-sync-data:
node-db:
node-ipc:
postgres-data:
Additional context
Add any other context about the problem here.
Problem Report
{"name":"cardano-graphql","hostname":"fdb6e3bd2182","pid":1,"level":50,"msg":"Epoch information not yet available. This is expected during the initial chain-sync.","time":"2022-04-12T09:12:51.303Z","v":0}

7 days since i setup the container and yet no epoch info is available. Used method A in the readme here -> https://github.com/input-output-hk/cardano-graphql/tree/6.2.0

This sounds like a cardano-graphql problem and cardano-graphql has its own repo.
From the incredibly brief description above, it seems like the cardano-node that cardano-db-sync is supposed to be connected to is not working. You need to find the logs for  cardano-node and cardano-db-sync.

graphql

i will move the issue to that repo

You also need to follow the following steps:

Figure out if cardano-node is running and if it is in sync with the network.
Figure out if cardano-db-sync is running and is in sync with the node it is connecting to,

You also need to follow the following steps:

Figure out if cardano-node is running and if it is in sync with the network.
Figure out if cardano-db-sync is running and is in sync with the node it is connecting to,

cardano-node logs
{"severity":"Info","timestamp":"2022-04-19T12:11:22.348023174Z","thread":"17","message":{"tag":"OgmiosHealth","healthCheck":{"tag":"HealthTick","status":{"startTime":"2022-04-12T09:11:52.988619008Z","lastKnownTip":{"slot":58803990,"hash":"b1d13f6cd6aaaccc4cc7cead9a973466204d53cb5417b3a5eb00c00f5fea8122","blockNo":7143014},"lastTipUpdate":"2022-04-19T12:11:22.347860489Z","networkSynchronization":0.99999,"currentEra":"Alonzo","metrics":{"activeConnections":0,"totalConnections":0,"totalUnrouted":0,"sessionDurations":{"mean":0,"min":0,"max":0},"runtimeStats":{"currentHeapSize":3542,"gcCpuTime":667242377000,"cpuTime":3778491161900,"maxHeapSize":3542},"totalMessages":0}}}},"version":"v4.1.0"},
{"severity":"Info","timestamp":"2022-04-19T12:11:20.538434538Z","thread":"17","message":{"tag":"OgmiosHealth","healthCheck":{"tag":"HealthTick","status":{"startTime":"2022-04-12T09:11:52.988619008Z","lastKnownTip":{"slot":58803988,"hash":"ae71bacc9bf0bd892de72b604606a11b67ea2c8d62344776eba030570cd083d3","blockNo":7143013},"lastTipUpdate":"2022-04-19T12:11:20.538170814Z","networkSynchronization":0.99999,"currentEra":"Alonzo","metrics":{"activeConnections":0,"totalConnections":0,"totalUnrouted":0,"sessionDurations":{"mean":0,"min":0,"max":0},"runtimeStats":{"currentHeapSize":3542,"gcCpuTime":667232877800,"cpuTime":3778478972700,"maxHeapSize":3542},"totalMessages":0}}}},"version":"v4.1.0"},
[e63fcf60:cardano.node.ChainDB:Notice:35] [2022-04-19 12:11:22.34 UTC] Chain extended, new tip: b1d13f6cd6aaaccc4cc7cead9a973466204d53cb5417b3a5eb00c00f5fea8122 at slot 58803990
cardano-db-sync logs
[db-sync-node:Info:59] [2022-04-19 11:28:37.17 UTC] Offline pool metadata fetch: 46 results, 54 fetch errors,
[db-sync-node:Info:59] [2022-04-19 10:24:26.05 UTC] Offline pool metadata fetch: 44 results, 56 fetch errors,
[db-sync-node:Info:59] [2022-04-19 10:24:26.05 UTC] insertShelleyBlock(Alonzo): epoch 304, slot 46139657, block 6540000, hash 99fd37f68af8a989aa9a1e61b43315c865f0fcc69ee60f318d2e6b3cbd35a015,
[db-sync-node:Info:59] [2022-04-19 10:24:24.88 UTC] Removing valid files ["/var/lib/cdbsync/45729331-6d031e42c1.lstate"],
[db-sync-node:Info:59] [2022-04-19 10:24:24.87 UTC] Took a ledger snapshot at /var/lib/cdbsync/46139639-d45b35bc92.lstate,
[db-sync-node:Info:59] [2022-04-19 09:24:43.23 UTC] Offline pool metadata fetch: 49 results, 51 fetch errors,
[db-sync-node:Info:59] [2022-04-19 08:17:31.08 UTC] Offline pool metadata fetch: 49 results, 51 fetch errors,
[db-sync-node:Info:59] [2022-04-19 07:27:10.48 UTC] insertShelleyBlock(Alonzo): epoch 304, slot 46037331, block 6535000, hash 010256bc54c71974610e740fc01efbe2b6ee75f3f5ce8629755cb730d75941a5

If its syncing mainnet and its at epoch 304 then its not fully synced.
Are you running this on a system that meets the minimum system requirements? We have found that for instance, some Amazon AWS instances run really slowly because they have insufficient I/O bandwidth.

@PrernaPadhee is this sorted out yet? Can this ticket be closed?


coconutbattery: init at 3.9.12

Description of changes

added new darwin only package, coconutbattery https://www.coconut-flavour.com/coconutbattery
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

On aarch64-darwin and x86_64-darwin:
$ nix run nixpkgs#nixpkgs-review -- pr 240621
1 package added:
coconutbattery (init at 3.9.12)
1 package built:
coconutbattery

Thanks for the review! Could you also take a look at these?

https://github.com/NixOS/nixpkgs/pull/240618
https://github.com/NixOS/nixpkgs/pull/240625


Ensure proper state transitions for RSET

in particular, it has to be a NOOP if issued directly before or after EHLO or HELO, which it currently is not.

Fixed in 17fcd946ba840fa53535ca171ca8e8ca175fcddf


Update stateful to handle new ActiveEffect calling sdk update

What

Update activeEffect when the callsubscriber receives the localVideoStreamUpdated event
Update the api to just use activeEffect same as calling SDK

Why
Updates to match calling sdk api
How Tested
Ran locally and could change effects

making changes

Going to update this to handle array of streams