Add support for changing base branch on pull requests

announcement: https://developer.github.com/changes/2016-08-23-change-base/
This is going to be problematic since PullRequestsService.Edit takes a PullRequest whose current base field is of type PullRequestBranch.

This is going to be problematic since PullRequestsService.Edit takes a PullRequest whose current base field is of type PullRequestBranch.

I might be way off base, but is PullRequestsService.EditBase a no-go?

I might be way off base

I see what you did there :smirk:
The other option is to add state to NewPullRequest, and change PullRequestsService.Edit to take that as a parameter.  Which is a breaking change and also really ugly since the name NewPullRequest doesn't make sense in that context, and it means if you already have a PullRequest object you can't simply pass it to the Edit method, you'd have to convert it first.
I gotta say, design decisions like this in the GitHub API drive me absolutely insane.  it would have been a simple matter to have the payload for updating a pull request be:
{
  "title": "Amazing new feature",
  "body": "Please pull this in!",
  "head": "octocat:new-feature",
  "base": {
    "ref: "master"
  }
}

And then it would have been compatible with the existing Pull Request JSON object.  Come to think of it, why doesn't GitHub simply accept both styles? (Maybe it does? I haven't tried it)

I gotta say, design decisions like this in the GitHub API drive me absolutely insane.  it would have been a simple matter to have the payload for updating a pull request be:
...
And then it would have been compatible with the existing Pull Request JSON object.  Come to think of it, why doesn't GitHub simply accept both styles? (Maybe it does? I haven't tried it)

If you think so, it might be worth to send<EMAIL_ADDRESS>an email with that question/suggestion. In my experience, they do a good job of either elaborating on their rationale for an API decision, or taking feedback into account and improving it. At least while the API is in preview period and they're purposefully asking for feedback on it:

If you have any questions or feedback, please let us know!

How this issue going? Is it still have to be done?

@willnorris @shurcooL   is this still have to be done?

As far as I can tell, this issue is unresolved and needs to be done. Latest status appears to be https://github.com/google/go-github/issues/421#issuecomment-242102052.

I'll read up on this issue today and send a request to GitHub Tech Support once I have a base understanding.

I had an exchange with the excellent GitHub Tech Support team, and they pointed out that the PATCH API to update a PR never supported the sending of a JSON object representing a PullRequest, which may or may not be an obvious statement to others reading this thread.
I did some digging, and that is indeed the case.
Unfortunately, they are not amenable to supporting the use case of the above recommendation.
My recommendation is that we break the go-github API and make a new opt struct for the Edit method to pass in the optional fields (which is a common pattern in this package), using omitempty as usual.
Thoughts?

what about leaving pulls.Edit as it is today, and have it continue taking a PullRequest as input, but internally it converts it to a
type pullRequestUpdate struct {
    Title *string `json:"title,omitempty"`
    Body  *string `json:"body,omitempty"`
    State  *string `json:"state,omitempty"`
    Base  *string `json:"base,omitempty"`
}

or whatever we name it.  Basically, just copy over Title, Body, and State as-is, and copy Base from the passed-in PullRequest.Base.Ref.  This is also a patter we already have in the library where we occasionally use unexported types for construct requests.

My recommendation is that we break the go-github API and make a new opt struct for the Edit method to pass in the optional fields (which is a common pattern in this package), using omitempty as usual.

So something like PullRequestEdit, a struct dedicated to editing a pull request, right?
I'd be in agreement with doing that. We often start out trying to reuse the same struct for get and edit operations, but later find out they're not really compatible (e.g., when editing a pull request, most fields of PullRequest such as ID, Number, CreatedAt, UpdatedAt, DiffURL, etc., are not applicable).
@willnorris's suggestion works too. We can do that first, for now, since it's less expensive (no public API change), and we can consider/defer the PullRequestEdit idea until later, when using PullRequest for editing becomes too unwieldy.

I agree. Let's do @willnorris' suggestion above.
This should also be relatively straightforward, so I'm going to mark this issue as "good for beginner" in case anyone else wants to contribute.

I'm not sure if I understand @willnorris's suggestion completely. But I'd like to work on this. 🙂

An example of what I think his suggestion was is similar to createCommit here.

@sahildua2305, an example of what I think his suggestion was is similar to createCommit here. See how CreateCommit method takes commit *Commit, but internally uses createCommit.

Yes, that was the example I was thinking about.


Add possibility to use RFC3164 for udp syslog

Sorry but as I am not familiar with RFC3164 can you explain what the upside is of using this obsolete RFC vs RFC5424 (which is 10 years old and not exactly bleeding edge)?

No immediate upsides.
But there are certain tools which only support RFC3164, e.g. the syslog plugin of logstash (https://www.elastic.co/guide/en/logstash/current/plugins-inputs-syslog.html)

Ok, well I guess it doesn't hurt to have this so will merge, thanks!

@Seldaek should I implement it on master as well?

No no it's been merged already


Permission update

@harsha89 : Do we have a Git issue for this? If so, it would be better to point this here and also have a git issue in Kernel. With regard to the Git commits, IMO we can squash all the commits into one.

Reviewed Registry code related changes.

@darshanasbg @isharak @johannnallathamby @pathberiya Could you please review the user code changes?

@darshanasbg , @isharak , pleaser review/approve/merge this or close it.

CLosing this as this fix has merge in a separate pull request.


ENH: add coverage_simplify exposing topological simplification of coverages

xref #1570
GEOS supports this simplification for collections of polygons only. Here, I have currently opted for returning other geometries untouched but the correct behaviour is up to a discussion. When checking for correct geom types, nesting og GeometryCollections is not supported and a GeometryCollection of a GeometryCollections will not be simplified no matter the contents of the inner collection.
If we did not do this check, when points or line strings are passed, shapely returns (empty) GEOS Exception. When passing GeometryCollection with points or line strings, it kills the kernel, so I suppose that the checks I have included now are quite a feasible way forward.
I am mirroring the API of PostGIS, not that of GEOS. So the keyword is simplify_boundary rather than preserve_boundary which seems more intuitive.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 88.035%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
2590

Relevant Lines:
2942

💛  - Coveralls

I'll fish those cases out and report to GEOS, good point.
I actually wrote more tests but apparently did not push the commit. Will do once I'll get to laptop.

I suppose that the input coverage needs to be entirely topologically sound? Eg. that if two polygons touch not in a common point but a point touches a vector of another polygon between two points, this will not be treated as a common boundary?
If this is the case, I think it will be useful to explicitly mention this in the doc to avoid misunderstandings...

We also need to decide how to treat the input geometry argument. AFAIK in the current state of the PR, you just pass each input geometry to the GEOS function, and so this assumes that the user already collected their set of polygons into a collection.
Alternatively, we can also do that for the user. Similarly as ST_CoverageSimplify is a window function (thus taking a set of geometries to simplify together), and similarly as for union_all we also collect the input geometries in a collection first before passing to GEOSUnaryUnion.

I have changed the behaviour to follow the logic of union_all or ST_CoverageSimplify to make the function operate on the whole array and return a collection. The axis keyword is not yet tested but please have a look if this makes more sense API-wise.

I mean, I am not attached to the axis keyword. I even said above

The axis keyword is not yet tested but please have a look if this makes more sense API-wise.

The reason I included it in this way is that we need to collect individual geometries in some way before passing them to GEOS, otherwise we expect user to do that. The latter was originally implemented here but as pointed out by @jorisvandenbossche above, it may not be what user expects from this function.
When collecting geometries, shapely has a precedent of using the axis keyword. I simply followed that for the sake of consistency. Coverage simplification then works as aggregation, since it returns a GeometryCollection, following practically the same pattern as union_all and other functions.
I fully understand your concern but I am not sure if this function is different enough to deviate from this pattern. But in the end, that is not my call to make.
I can remove the axis and follow the route currently implemented for axis=None, I don't mind that, if you think that it does not belong here. But then you should maybe have a discussion if it belongs elsewhere as well.

axis is new to me. It comes from Pandas, right? I think boundaries between Pandas/GeoPandas and Shapely are a good thing and that we should resist blurring the projects if we can.

To be clear, the axis keyword does not come from pandas (I don't think we actually even use it in geopandas in any of the shapely methods we call), but it comes from numpy.
See https://numpy.org/doc/stable/glossary.html#term-axis and https://numpy.org/doc/stable/glossary.html#term-along-an-axis for operations that can be performed along an axis. Such operations have an axis keyword, and so for example all reduction functions or generalized ufuncs in numpy have that keyword.
Given that the core GEOS functions we now wrap are implemented as numpy ufuncs, I think providing the axis keyword in reducing ufuncs is very natural (for people familiar with numpy, and we can of course do a better job explaining this keyword in our docs for people less familiar).

Even, so why would we want to ravel in one case, and rollaxis in the other? What does this mean to a GIS programmer? If lib.coverage_simplify() can accept N-D arrays, can the caller not ravel or rollaxis or neither (perhaps?) as they need before calling the method?

The ravel or rollaxis call is an implementation detail that currently ensures the function behaves as expected for a numpy reduction: the default of axis=None means reducing over all values (producing a single value), specifying an axis means reducing along that axis (producing an array with the specified axis removed from the result' shape).
Can you the user do this themselves? Potentially yes, depending on what signature we would provide instead.
But would it be expected that you need to do this yourself? I would say no, for someone who expects an interface consistent with numpy (and I would personally also not call this just "convenience", using rollaxis is quite advanced, and my guess is the many numpy users will know the axis keyword, but will never have used rollaxis directly)

What does this mean to a GIS programmer?

To be fair, I don't think this specific capability is that useful for typical GIS applications. I think it is quite normal that a user would want to simplify different groups of geometries together, but it is probably not that likely that those different groups are then exactly the same size such that you actually can put them in a multidimensional numpy array and make use of reducing over an axis.
(hypothetical example: you have 5 groups of 10 polygons where you want to simplify per group; in that case you could put those geometries in a (5, 10) array, and call coverage_simplify with axis=1 to get the 5 simplified geometry collections (one per group). But so if those groups are not exactly the same size, you cannot make use of this feature and you will have to manually loop through the groups anyway)
But while this specific case doesn't seem that useful, there are several other aspects about the numpy ufunc capabilities that are very useful, such as the broadcasting behaviour (allowing you to do pairwise operations). And when we essentially provide standard numpy functions with those features, I would personally go for being consistent in following numpy's design entirely, and not only provide that subset of features that we think will be useful.

That said, we still need to make a choice about what kind of function we want to provide, and there are different options which all have some pros and cons (and not all of those options have an axis keyword when following numpy):

A plain simple element-wise ufunc (i.e. shape in = shape out): this is what Martin did in the first version of this PR. This means that it is up to the user to collect the polygons in geometry collections, and there would be no axis keyword.
A reduction-like function: this is the current state of the PR, where we collect the polygons in a collection under the hood. This returns a single scalar result by default (but can be changed with the axis keyword to reduce only over a specific axis)
A generalized ufunc with 1 dimension that gets reduced (this could actually be fully implemented in ufuncs.c in that case). This would be similar to polygonize that has a ufunc signature of (d)->(), which means that it reduces over the last dimension.
A final option could also be a function that does both the collection and explosion for the user, i.e a function that has "shape in = shape out" but is not elementwise (in the meaning of processing every element independently). It would simplify all geometries in the input array together, but preserve the shape of the input array (and essentially hide the fact that the core GEOS function is implemented in terms of GeometryCollections and not Polygons)

The first option is the closest to the pure GEOS function, the last option is closest to how PostGIS exposes this as [ST_CoverageSimplify](https://postgis.net/docs/ST_CoverageSimplify.html) (and I think the most user friendly or "convenient").
Note that there is prior art in "hiding" the fact that certain GEOS functions work on a GeometryCollection (instead of on an array of geometries, but that might be because the collection is easier in the C API). The unary_union function that shapely has exposed for a long time, has always collected the input geometries in a collection first, instead of requiring the user to do that (and same for eg polygonize_full)

I have just tested that doing the option four, meaning collect-simplify-explode, is possible as the order of geometries in the collection seems to be preserved throughout the simplification procedure. That is how I would like this to behave in GeoPandas but within shapely, it feels inconsistent as other reductions like polygonize return a collection of polygons, not an array of individual geometries. But truth is, that a user does not need to know the implementation details in GEOS and we can use the API that more mirrors normal simplify than polygonize or union, even though that is how it practically works.
So I'm happy to update the PR to follow the first option. However, with a N-D array (e.g. time x geom used in vector data cubes), we'd need to slice and loop over 1D arrays, compared to the current state of the PR.

within shapely, it feels inconsistent as other reductions like polygonize return a collection of polygons, not an array of individual geometries.

Yes, but we could also argue that coverage_simplify is not a reduction. Just like simplify is also not a reduction. Taking option 4 would make simplify and coverage_simplify more similar in usage, with the only difference that simplify works purely element-by-element where coverage_simplify considers the full input as context to simplify each element.
(for polygonize there is also no 1-to-1 mapping between input and output, so that's a bit of a different situation and would neither fit in a reduction or window function if it returned the exploded array, so I think here making it a reduction makes more sense)

Alright. I'll try to update the PR over the weekend.

(maybe wait a bit to give Sean time to respond as well)

@sgillies do you have time to take another look at the discussion above?

@jorisvandenbossche @martinfleis thank you for the discussion. I've finally got my head around the current implementation. It makes sense to me. I'm also attracted to the 4th option.
Do either of you know if GEOS coverage simplification always conserves polygons? If pieces of a coverage are ever simplified away to nothing, then we could not implement the fourth option, right?

The VW algorithm reduced a polygon to a triangle at most, so there's always a polygon as an output. I will verify that again but so far I believe that we can implement the fourth option.

That's indeed what the doc comment in the C API guarantees (https://github.com/libgeos/geos/blob/2b5721bc96d64c3d768bd0e91dba6c3bbca354a9/capi/geos_c.h.in#L3960):

Geometries never disappear, but they may be simplified down to just
a triangle. Also, some invalid geoms (such as Polygons which have too
few non-repeated points) will be returned unchanged.

Let's do the fourth option, then, and agree that this isn't a reduction operation?
BTW, I'm happy with the 5 instances in set_operations.py.

I have changed the behaviour to follow the fourth model but I don't think it is quite right implementation-wise. Right now, it works in principle but does not work like a ufunc, so casting it on a GeoSeries does not preserve GeoSeries output etc... And I think that this logic should happen in C but I think I've hit the limits of my C and wasn't able to make it work.
So marking this as a draft but I'll probably need to pass this on to someone more capable in C. It got more complicated than anticipated.


wp-pot dep is still on v1.1.5 in wp-gulp-pot v2.0.4

please consider the release bump :)
also some strings dropped from the pot file in node v8, but I'm not able to test with the last version of wp-pot.

I cannot install the v2.0.5

yep, npm v5 and package-lock funny business!


PayPal Authentication

New PR for PayPal Authentication for 0.4.0 branch

@trainerbill looks like some conflicts exist there, can you look into it?

@lirantal What conflicts?  I merged the PayPalAuth4 branch with 0.4.0 successfully.

@trainerbill I don't know what conflicts but take a look at the merge notice:

It says clearly "we can't automatically merge this pull request"

@lirantal  Ok, I fixed the merge conflicts but it required getting up to date with meanjs/0.4.0 so there are a ton of changes that I didn't make...  Not sure if this is the proper way to handle this or not.

@ilanbiala Fixed the indentation.  Stupid atom.  as @jloveland mentioned it is an option to switch between sandbox/testing mode and production mode for Login With PayPal

thanks @trainerbill!


Questions about gen_proposal_list.py

Hi, thanks for your great contribution!
But a problem occurs when I run gen_proposal_list.py using the command:
python gen_proposal_list.py thumos14 thumos14
parse frames under folder thumos14
0 videos parsed
frame folder analysis done
Traceback (most recent call last):
  File "gen_proposal_list.py", line 32, in <module>
    out_list_tmpl.format(configs['train_list']), frame_dict)
  File "/data/home/huntezhang/ivyzwzhang/action-detection-scp/ops/io.py", line 40, in process_proposal_list
    frame_info = frame_dict[vid]
KeyError: 'video_validation_0000354'

I think the problem may be related to the thumos14 dataset. Since I notice that in the paper you mentioned that there are 220 videos in the validation set, but I have only 200.
Is this the key factor?

I have the same doubts. Can you find a solution? @zzw1123

I guess so. You may try get the full validation set.

I have encountered the same problem and found the reason by reading the code.
In THUMOS14 ,Validation Data (1010 untrimmed videos)，Test Data (1574 untrimmed videos),the normalized_proposal_list corresponding to it ,but only  validation set( 200 untrimmed videos), test set (213 untrimmed videos) have annotation for action detection.
I specified the FRAMES_PATH just have 213,so it raise KeyError.I hope this is useful to you.
But I have new doubt that have to use the no annotation video to train or test model for action  detection？@yjxiong

@lyy-zz
Thanks for the reply. The convention for this dataset is to use videos only with positive annotations. The code we provide supports using all videos. But the results will not be apple-to-apple comparable with other methods' reports.

Hi, thanks for your great contribution!
But a problem occurs when I run gen_proposal_list.py using the command:
python gen_proposal_list.py thumos14 thumos14
parse frames under folder thumos14
0 videos parsed
frame folder analysis done
Traceback (most recent call last):
  File "gen_proposal_list.py", line 32, in <module>
    out_list_tmpl.format(configs['train_list']), frame_dict)
  File "/data/home/huntezhang/ivyzwzhang/action-detection-scp/ops/io.py", line 40, in process_proposal_list
    frame_info = frame_dict[vid]
KeyError: 'video_validation_0000354'

I think the problem may be related to the thumos14 dataset. Since I notice that in the paper you mentioned that there are 220 videos in the validation set, but I have only 200.
Is this the key factor?

Did you solve the problem? thank you@zzw1123


Ensure cert exists

example:
pre_build:
  - path: stacker.hooks.iam.ensure_server_cert_exists
    required: true
    args:
      cert_name: ${vault_elb_cert_name}
  - path: stacker.hooks.iam.ensure_server_cert_exists
    required: true
    args:
      cert_name: ${empire_controller_cert_name}

makes it easy to use private certs for different environments

@phobologic comments addressed


Bluebird unusable in AWS Lambda / NodeJS

What version of bluebird is the issue happening on?  3.4.7

What platform and version? (For example Node.js 0.12 or Google Chrome 32) NodeJS 4.3

Did this issue happen with earlier version of bluebird? Unknown

In an AWS Lambda function written in JS, using bluebird and executing on NodeJS:

a promise is created
on a setTimeout, the promise is resolved
when it's resolved, the lambda function callback is invoked

IF the lambda function's execution timeout occurs before the setTimeout, the internal state of the bluebird library is hosed, and not only does this invocation of the lambda function time out, but ALL FURTHER invocations of the lambda function fail by timing out.
Code below (sans node_modules needed for packaging as lambda fn).  Note that the code below uses the input event's .timeout property for the setTimeout.
var Promise = require("bluebird");

module.exports.hello = function(event, context, cb) {
    var p = new Promise(function(resolve, reject) {
        setTimeout(
            function() {
                resolve();
            },
            event.timeout);
    });
    p.then(function(foo) {
        cb(null, "cb happy");
    });
};

This is a WTF moment... No real problem with Bluebird... Seems to be an AWS/Lambda problem.  Bumping up the RAM allocated to the lambda function makes everything better... Completely inexplicable.  I'm opening up a ticket with AWS.

@cvillecsteele Do you happen to have any info on the AWS ticket? This is impacting me as well.

try increasing the memory to 256M

The issue is a Lambda issue, not bluebird. I made a pure javascript example of the hang with no external non-native libraries. The example project is here: https://github.com/Type-Zero/promise-timeout-hang-js
The key is that the function code outside the handler must take up at least ~16% of the function's memory. If the code in memory is that large and then global timeout is triggered, Lambda seems to lose state. Once the global timeout is triggered for any function with resident imported data occupying > 16% of the maximum memory for the NodeJS lambda function it will no longer work. I tried the 1536 MB function and found that it would suffer the same problem after just 13% of the memory being filled.
So really if you are getting these issues, you might want to import libraries from the handler function. We haven't tried that. Just bumped the memory up.

FYI I appears that AWS fixed this problem.

Currently experiencing this with AWS Lambda on Node.js 6.10. Bumping up the memory to max allows some code to execute but eventually times out.

@simoncpu can you tell more about the code (code size, function code being outside the lambda handler, whether the problem clears itself up).  When you say "some", do you mean, sometimes it works?
@joekiller thank you for tracing this down.  I found your post somewhere on the Internet.  Did you get a confirmation from anyone at Amazon regarding the issue?  I see you and @moea had a good back and forth on this, but was hoping there was a ticket tied to Amazon somewhere ...

@truedat101 I had a formal ticket in with AWS but they gave me the same ole'we'll fix it when we fix it answer. Best I can say is I tried replicating the problem for another experiment and was unable. I'm pretty sure they fixed the handler issues.
My secondary experiment had a Lamda open a DB connection outside the handler code. The connection persisted after execution until the underlying function was recycled. I couldn't replicate that after the fix either.
See discussion here http://theburningmonk.com/2016/05/aws-lambda-constant-timeout-when-using-bluebird-promise/#comments
Here was AWS' response via Twitter: https://mobile.twitter.com/joekiller/status/877562054961491969

@truedat101 My bad, I isolated this issue on our code and turns out that this was related to ioredis, not Bluebird. The solution to prevent Lambda from timing out is at: https://www.linkedin.com/pulse/aws-lambda-reusable-resources-marjan-sterjev.

@joekiller thanks for the follow up.  This was a head scratcher.

@simoncpu I hit the same problem with ioredis.


python 3.8.10 import and error

Description

here the error when doing the test on python. able to complie lightgbm to run on windows 10(64bit) via cmake, mingw64 complier.
Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

import lightgbm as lgb
Traceback (most recent call last):
File "", line 1, in
File "C:\Python\Python38_10-64\lib\site-packages\lightgbm_init_.py", line 8, in
from .basic import Booster, Dataset, Sequence, register_logger
File "C:\Python\Python38_10-64\lib\site-packages\lightgbm\basic.py", line 125, in
_LIB = _load_lib()
File "C:\Python\Python38_10-64\lib\site-packages\lightgbm\basic.py", line 116, in load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "C:\Python\Python38_10-64\lib\ctypes_init.py", line 451, in LoadLibrary
return self.dlltype(name)
File "C:\Python\Python38_10-64\lib\ctypes_init.py", line 373, in init
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Python\Python38_10-64\lib\site-packages\lightgbm\lib_lightgbm.dll' (or one of its dependencies). Try using the full path with constructor syntax.

Reproducible example

C:\github_repos\LightGBM\python-package>setup.py install --mingw --gpu
running install
C:\Python\Python38_10-64\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
INFO:LightGBM:Starting to compile the library.
INFO:LightGBM:Starting to compile with CMake and MinGW.
running build
running build_py
running egg_info
writing lightgbm.egg-info\PKG-INFO
writing dependency_links to lightgbm.egg-info\dependency_links.txt
writing requirements to lightgbm.egg-info\requires.txt
writing top-level names to lightgbm.egg-info\top_level.txt
reading manifest file 'lightgbm.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'build'
warning: no files found matching '.txt'
warning: no files found matching '.so' under directory 'lightgbm'
warning: no files found matching 'compile\cmake\IntegratedOpenCL.cmake'
warning: no files found matching '.so' under directory 'compile'
warning: no files found matching '.dll' under directory 'compile\Release'
warning: no files found matching '.dll' under directory 'compile\windows\x64\DLL'
warning: no previously-included files matching '.py[co]' found anywhere in distribution
warning: no previously-included files found matching 'compile\external_libs\compute.git'
adding license file 'LICENSE'
writing manifest file 'lightgbm.egg-info\SOURCES.txt'
copying lightgbm\VERSION.txt -> build\lib\lightgbm
running install_lib
creating C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\basic.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\callback.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\compat.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\dask.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\engine.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\libpath.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\plotting.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\sklearn.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm\VERSION.txt -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
copying build\lib\lightgbm_init_.py -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
INFO:LightGBM:Installing lib_lightgbm from: ['C:\github_repos\LightGBM\lib_lightgbm.dll', 'C:\github_repos\LightGBM\python-package\compile\lib_lightgbm.dll']
copying C:\github_repos\LightGBM\lib_lightgbm.dll -> C:\Python\Python38_10-64\Lib\site-packages\lightgbm
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\basic.py to basic.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\callback.py to callback.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\compat.py to compat.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\dask.py to dask.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\engine.py to engine.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\libpath.py to libpath.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\plotting.py to plotting.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm\sklearn.py to sklearn.cpython-38.pyc
byte-compiling C:\Python\Python38_10-64\Lib\site-packages\lightgbm_init_.py to init.cpython-38.pyc
running install_egg_info
Copying lightgbm.egg-info to C:\Python\Python38_10-64\Lib\site-packages\lightgbm-<IP_ADDRESS>-py3.8.egg-info
running install_scripts
Environment info
LightGBM version or commit hash:
Command(s) you used to install LightGBM
C:\github_repos\LightGBM\python-package>setup.py install --mingw --gpu

windows 10(64bit) Python 3.8.10 (64 bit)
Additional Comments

In jupyter notebook, I also encountered this situation:
i found that when  "Anaconda3/lib/site-packages/lightgbm/lib_lightgbm.dll" was replaced by "Lightgbm/Release/lib_lightgbm.dll", "import lightgbm" has no error, but when i train a model, it raise  one error
then when  "Anaconda3/lib/site-packages/lightgbm/lib_lightgbm.dll" was replaced by "Lightgbm/python-package/compile/release/lib_lightgbm.dll", the error  disappeared!

I also encountered this situation：

Python 3.8.13 (default, Mar 28 2022, 06:59:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

import lightgbm
['D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm\lib_lightgbm.dll']
Traceback (most recent call last):
File "", line 1, in
File "D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm_init_.py", line 8, in
from .basic import Booster, Dataset, Sequence, register_logger
File "D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm\basic.py", line 126, in
_LIB = _load_lib()
File "D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm\basic.py", line 117, in load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "D:\ProgramData\Anaconda3\envs\test\lib\ctypes_init.py", line 451, in LoadLibrary
return self.dlltype(name)
File "D:\ProgramData\Anaconda3\envs\test\lib\ctypes_init.py", line 373, in init
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm\lib_lightgbm.dll' (or one of its dependencies). Try using the full path with constructor syntax.

['D:\ProgramData\Anaconda3\envs\test\lib\site-packages\lightgbm\lib_lightgbm.dll'] is lib_path.
The compilation process is based on the lightgbm gpu version for windows process:

vs 2019, boost 1_71_0, cuda 11.2

python setup.py install --gpu

I have tried looking for a solution to the problem and I found this thing with dll dependency walker in lib_lightgbm.dll: my computer is missing many dll dependencies!
but when i python setup.py install and import lightgbm, the above problem disappeared!
this problem may be similar to #499. @guolinke please help.

i tried that before. not sure why cmake installation just cannot be registered.
C:\github_repos\LightGBM\python-package>python setup.py install --gpu
running install
C:\Python\Python38_10-64\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
INFO:LightGBM:Starting to compile the library.
INFO:LightGBM:Starting to compile with Visual Studio 17 2022 (x64).
INFO:LightGBM:Starting to compile with Visual Studio 16 2019 (x64).
Traceback (most recent call last):
File "setup.py", line 96, in silent_call
subprocess.check_call(cmd, stderr=log, stdout=log)
File "C:\Python\Python38_10-64\lib\subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', 'C:\github_repos\LightGBM\python-package\build_cpp', '--target', '_lightgbm', '--config', 'Release']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "setup.py", line 346, in
setup(name='lightgbm',
File "C:\Python\Python38_10-64\lib\site-packages\setuptools_init_.py", line 155, in setup
return distutils.core.setup(**attrs)
File "C:\Python\Python38_10-64\lib\site-packages\setuptools_distutils\core.py", line 148, in setup
return run_commands(dist)
File "C:\Python\Python38_10-64\lib\site-packages\setuptools_distutils\core.py", line 163, in run_commands
dist.run_commands()
File "C:\Python\Python38_10-64\lib\site-packages\setuptools_distutils\dist.py", line 967, in run_commands
self.run_command(cmd)
File "C:\Python\Python38_10-64\lib\site-packages\setuptools_distutils\dist.py", line 986, in run_command
cmd_obj.run()
File "setup.py", line 258, in run
compile_cpp(use_mingw=self.mingw, use_gpu=self.gpu, use_cuda=self.cuda, use_cuda_exp=self.cuda_exp, use_mpi=self.mpi,
File "setup.py", line 203, in compile_cpp
silent_call(["cmake", "--build", str(build_dir), "--target", "_lightgbm", "--config", "Release"], raise_error=True,
File "setup.py", line 100, in silent_call
raise Exception("\n".join((error_msg, LOG_NOTICE)))
Exception: Please install CMake first
The full version of error log was saved into C:\Users\User\LightGBM_compilation.log
C:\github_repos\LightGBM\python-package>

but when i python setup.py install and import lightgbm, the above problem disappeared!

When building the LightGBM Python package from source, it's important that you use
python setup.py install

and not
setup.py install

So that the first instance of executable python on PATH is found and used to build the package.

not sure why cmake installation just cannot be registered

I don't know what you mean by "registered". This error means that you do not have cmake / cmake.exe available on PATH. Since it looks like you are using an Anaconda distribution of Python, try using conda to install cmake.
conda install -c conda-forge --yes cmake

I've closed #5335 as a duplicate of this issue. It contains some other details of a similar problem.


Update openAPI spec

Readiness checklist

[ ] I added/updated tests.
[x] I ensured that the PR title is good enough for the changelog.
[x] I labeled the PR.

@Magnus-Kuhn if you are waiting for more reviews here please inform the people you are waiting for that this is eager.

@Magnus-Kuhn if you are waiting for more reviews here please inform the people you are waiting for that this is eager.

If you're happy with the current reviews, I'm happy :)


Align pkg_rpm returned files with other rules

pkg_rpm returns both package file and a symbolic link, while other rules return only the actual file.
This is a follow up PR on the comment in #685.

Leaving this one for @nacl.  They are the RPM expert and heavy user.

Still trying to get a handle on the CI failures. It doesn't make sense.

Friendly ping. Can you try to update your branch and push again so we can see if CI is cleared up?

Done! The CI is passing.

Does this fix #685?

Yes, we can close that one

Thanks!


Add  and  features

The overall status matches caniuse with these exceptions:

Chrome 4 is the earliest possible version in caniuse, so it cannot
match BCD's claim of Chrome 3.
Partial support due to parts of the API being unavailable or not
working isn't reproduced. This is clear from the statuses of the
individual BCD keys instead.

HTMLMediaElement is made part of  only for now.
Everything is Baseline high except for volume and playbackRate.

A summary of a side-channel chat between me and @ddbeck. The reason to avoid "plays" in the description here would be the precedent that we need to pick a verb for every element, leading to things like "<div> shows content". However, we'll just not do that, "play" works for media elements and for other elements we might have to use a different structure.


[HUDI-3400] Avoid throw exception when create hoodie table

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
Now, when create a hudi table, IllegalArgumentException will be thrown because of there is no data file, but has no effect on result, this PR will fix it.
Link: HUDI-3400
Brief change log

Check whether data file exist in TableSchemaResolver#hasOperationField when init TableSchemaResolver

Verify this pull request
This pull request is already covered by existing tests, such as TestCreateTable.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@alexeykudinkin : Can you review this patch as well.

@YannByron can you review this please? thank you

@huberylee LGTM, just leave some little suggestions. and please rebase master first.

@YannByron I have rebased master and solved comments, please review it, thanks.

@huberylee can you please elaborate what your PR is intending to change exactly? PR description states that you're fixing it throwing an IllegalArgumentException, but i still see it being thrown in the same circumstances.

@alexeykudinkin This PR is intending to avoid printing too many exception stacks when create a hoodie table.  When creating  hoodie table, no data files will be found in table path, so TableSchemaResolver#hasOperationField will return false by catch IllegalArgumentException or NullPointerException, and many exception stacks will be printed. Too many exception stacks in log may affect troubleshooting.

@alexeykudinkin You can verify this by running TestCreateTable, although the test passed, many exception messages were printed during the test.

@hudi-bot run azure

@alexeykudinkin Can you review this patch as well.


Django-redis<=4.5.0

There is no backwards compatibility in newer releases of
django-redis which makes this module throw exceptions
during initialization.

Is this to address #5 ?

Nope, it's the opposite. #5 wants to change the code in order to work with the newest django-redis package. This one wants to disallow using the newest django-redis in order to have current code working correctly.
I know it's not the best approach, but as long as there is no real fix, at least the proper version of django-redis should be used. Also note there won't be backwards compatibility when #5 is addressed (as the changes in django-redis are too big).


Improve logging

Description of changes

[x] Add user id to the logs
[x] Separate db and normal logs
[x] Log when calling A+
[x] Document log format
[x] Improve logging documentation
[x] Remove unnecessary log files

Related issues
Closes #725
Closes #247

server/logs is not gitignored

Not necessary as log files won't be created. In the production environment the docker container forwards the cli logs automatically.


docs: Adjust release process info

This is a dummy PR to test things.

Codecov Report

Merging #1 (72920e9) into master (1b3e240) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master        #1   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines           53        53
=========================================
  Hits            53        53

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Feature request: MultipleFilePicker

I (and presumably other users) use Pluto to automate batch processes. We also find the FilePicker to be a convenient GUI feature to choose data files to process. But currently FP can only choose and upload one file at a time. I'd like FP to have the added ability to choose and upload multiple files at a time.

Thanks!


[swri_image_util] Add a crosshairs nodelet to image_util

This new node[let] swri_image_util/crosshairs draws a crosshairs in the center of an image and publishes the drawn-upon image for display in a tool such as image_view. This is useful for aligning things in the real world with the center of the image.
The majority of the changes to nodelet_plugins.xml are from alphabetizing the nodelets.

I made one suggestion for clarity; other than that, LGTM.


OCPBUGS-43581: Fix TLS handshake error

When collect-profiles regenerates the certificate it makes a request to the server immidiatelly without waiting for the certificate to propagate to the server.
This leads to the situations when the server uses the old certificate and the client a new one and TLS handshake fails on certificate validation.
This change skips the rest of the job which allows the time for the certificate to propagate to the server.

/jira refresh

Test pass, details: https://issues.redhat.com/browse/OCPBUGS-43581
/label qe-approved

So, we don't attempt to connect when we create a new cert? What causes us to retry?

So, we don't attempt to connect when we create a new cert?

@tmshort yes. This bit now now works as it was before #486, but we don't regenerate the certificate on each run: we still use 24h validity.

What causes us to retry?

Not sure that I understand what you mean here.
We just skip the rest of the job when we need to regenerate. In another ~15min we will run the job again. We need this so that the cert propagates to the server.
There is also a bit more info in here.

Ok, so there's an attempt every 15 minutes, that's fine.

We should really be using the service-ca in Openshift... but that's an unrelated issue to this fix.

/lgtm


Rm "module": "lib/es/src/index.js", from package.json

Expected behavior
Our webpack build shouldn't fail :).
Current behavior
For some reason I don't completely understand, our webpack build is failing because of this line in package.json:
  "module": "lib/es/src/index.js",

I don't even know what the module field in package.json does (newb ..). But it seems to be causing ES6 Javascript to leak into our built web code. Is it needed to package es code?
Steps to reproduce
Can only provide steps to not reproduce: rm line:
  "module": "lib/es/src/index.js",

Context (environment)
Node: v12.18.1
react-intersection-observer: v1.3.3
webpack: v3.

The module field is similar to the main field and specifies the entrypoint, but with the difference that the source located there contains ES-Modules (import/export) and not commonjs (require()) code. So we are definitely not going to remove it, because for example webpack uses it, so it can better optimize the bundles (via tree shaking and module concatenation).
But I'm curious what the error is you get from webpack. Can you post the error message? Without it there is no way we can help.

The module field is similar to the main field and specifies the entrypoint

OK. My understanding of this has gotten slightly  better over the last day or so. Can see others are including /es/ and modules field in builds too.  Thanks for explanation.

But I'm curious what the error is you get from webpack. Can you post the error message? Without it there is no way we can help.

Absolutely. Well it's not from webpack exactly. It's from Uglify that runs over the webpack output. The particular error is:

ERROR in server.js from UglifyJs
Unexpected token: operator (>) [server.js:9373,59]

I traced this down to an arrow function left inside the parseRootMargin  function of this package. If I remove module from package.json or downgrade to 1.1.3 this error goes away and the build succeeds.

Can you try with version 1.3.4? It should now work correctly.

Yes it works now. Thanks!


Add ability to fetch queries

@carriebrinkley commented on Tue Aug 27 2019
Business Value:
This is a first slice of creating the ability for users to save/share queries for future use.  The ultimate goal is to provide efficiencies for the end user so that coming to the platform will be a time-save for all of their data needs.
Acceptance Criteria:

[ ] User can retrieve query through a unique ID
[ ] User cannot retrieve queries that they would not have access to run (this means private datasets for now)
[ ] If the user has permission to view, when they go to the url including the unique ID, they are presented with the chart builder with the query and fetched data.
[ ] If the user does not have permission to view/the query doesn't exist, they are told that either the query doesn't exist or they do not have access to it.
[ ] @jakeclark has signed off on the UX

Tech Notes:

This can probably be achieved through the existing multi-query authorization
Query IDs are stored in Redis for now

Amigos:
@jakeclark

Questions:

structure of saved query? id: { query: "select * from stuff" } - this way we can expand this in the future with less effort?
we manually set this up in redis, right?


Adds efficient IP range matching to HRW conditions

This should allow for much more efficient IP address checks, rather than having to convert IPs to strings (multiple times) and do string comparisons.
Jeff E. suggested we ought to generalize the notion of "ranges" in matching here, but I'd like to leave that for a future addition.

This is only lightly tested for now. I'm mostly sticking to the existing code patterns in header_rewrite, so no bike shedding without looking what the existing code already does. :).

[approve ci]

[approve ci]

[approve ci]

[approve ci debian]

[approve ci]

[approve ci autest]

[approve ci cutest]

[approve ci autest]

[approve ci autest]

[approve ci autest]

Cherry-picked to v9.2.x


Bolder schedules icon

Makes the schedules icon a similar darkness to the rest of the icons:

(looks better with the proper build-skipping updates in #253)


Preloading

Would be nice to have a preload option which would fetch the asciicast file on player initialization, so when the viewer clicks big play button it starts immediately. It should be off by default.
This would enable #15.

Implemented in 0f32ed1825ce1b347e669b3bfdc1b55b93e9afa3.


Passing printf through?

I have some existing SQL queries that do fancy formatting on numeric values using printf(). Example:
printf("$%,d", SD_Assessment2021) as "Ass. 2021" # 1234567 -> $1,234,567

I would like to wrap this formatting in a function (because I use it many places), but don't see how to do it yet.
Is it possible to do this in prql now? Is it on the road map? Many thanks.

I don't think that's a general SQL expression, is this for sqlite specifically? Have you tried using an s-string?

is this for sqlite specifically?

I'm using it with SQLite. I don't know much about the SQL language.

Have you tried using an s-string?

I just found s-strings... I'll check them out and re-open if it's warranted.

@snth - the playground makes it look as if s-strings might work. Thanks.
func dollars d -> s"""printf("$,d",{d})"""

from foo
select (dollars 1234567)


sslv3 Alert Handshake Failure (alert number 40)

Hi,
I used "openssl s_client -connect URL:port" command to visit 500 most popular websites (). But some URLs cause the following error:
140271130755520:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1399:SSL alert number 40
The problematic hostnames are these (including the openssl command to connect to those HTTPS web servers):
openssl s_client -connect www.reuters.com:443
openssl s_client -connect www.bloomberg.org:443
openssl s_client -connect www.wsj.com:443
openssl s_client -connect stumbleupon.com:443
openssl s_client -connect www-media.stanford.edu:443
openssl s_client -connect www.deviantart.com:443
openssl s_client -connect www.wiley.com:443
openssl s_client -connect themeforest.net:443
openssl s_client -connect mashable.com:443
openssl s_client -connect www.trustpilot.com:443
openssl s_client -connect www.a8.net:443
openssl s_client -connect www.uol.com.br:443
openssl s_client -connect www.domraider.com:443
openssl s_client -connect us.sagepub.com:443
openssl s_client -connect hbr.org:443
openssl s_client -connect static-service.prweb.com:443
openssl s_client -connect www.usgs.gov:443
openssl s_client -connect www.archives.gov:443
openssl s_client -connect www.usc.edu:443
openssl s_client -connect www.usa.gov:443
openssl s_client -connect www.istockphoto.com:443
openssl s_client -connect www.snapchat.com:443
openssl s_client -connect www2.gotomeeting.com:443
openssl s_client -connect bitbucket-marketing-cdn.atlassian.com:443
openssl s_client -connect cdn-1.wp.nginx.com:443
openssl s_client -connect d1af033869koo7.cloudfront.net:443
openssl s_client -connect www.worldbank.org:443
openssl s_client -connect www.mlbstatic.com:443
But when I use curl, none of the above causes any error:
curl -i https://www.reuters.com
curl -i https://www.bloomberg.org
curl -i https://www.wsj.com handshake
curl -i https://stumbleupon.com
curl -i https://www-media.stanford.edu
curl -i https://www.deviantart.com
curl -i https://www.wiley.com
curl -i https://themeforest.net
curl -i https://mashable.com
curl -i https://www.trustpilot.com
curl -i https://www.a8.net
curl -i https://www.uol.com.br
curl -i https://www.domraider.com
curl -i https://us.sagepub.com
curl -i https://hbr.org
curl -i https://static-service.prweb.com
curl -i https://www.usgs.gov
curl -i https://www.archives.gov
curl -i https://www.usc.edu
curl -i https://www.usa.gov
curl -i https://www.istockphoto.com
curl -i https://www.snapchat.com
curl -i https://www2.gotomeeting.com
curl -i https://bitbucket-marketing-cdn.atlassian.com
curl -i https://cdn-1.wp.nginx.com
curl -i https://d1af033869koo7.cloudfront.net
curl -i https://www.worldbank.org
curl -i https://www.mlbstatic.com
My goal is to connect to the above web servers by using a nonblocking TLS. If I use a blocking TLS, I can connect to all of them fine. But if I use a non-blockching TLS, I get exactly the same error as connecting to the above web servers by using "opensssl."
I thought the issue was not setting the Hostname extension value in the SSL structure of my source code. So I put the correct hostname as the following:
SSL_set_tlsext_host_name(ssl, hostname);
However, I still get the same error.. If someone has a brilliant insight to solve this problem, please help me out. Thanks!

I have tried 5 random of those, they all work for me

Which version are you using?

My version is: OpenSSL 1.1.0g  2 Nov 2017.
If I run curl, it works. But openssl doesn't.

Okay, I figured out the cause of the problem. For certain web servers which have more than 1 hostname, the client has to tell the server the exact hostname the client is trying to connect to, so that the web server can present the right SSL certificate having the hostname the client is expecting. In case of blocking SSL, we should use "SSL_set_tlsext_host_name(SSL* ssl, char* hostname)" function to set the server's hostname. But if I use this function for my nonblocking SSL case, it doesn't work. The following is my code setting my client's SSL with the server's hostname:
char* hostname = "www.reuters.com";
SSL_CTX* ctx = SSL_CTX_new(TLS_method());
SSL* ssl = SSL_new(ctx);
BIO rbio = BIO_new(BIO_s_mem());
BIO wbio = BIO_new(BIO_s_mem());
SSL_set_bio(ssl, rbio, wbio);
SSL_set_connect_state(ssl);
SSL_set_tlsext_host_name(ssl, hostname);
Is it that the nonblocking SSL should use a different funcion than SSL_set_tlsext_host_name to set the server's hostname?

Blocking and non-blocking mode really work just the same, other
than that the sockets might block.

Okay, I figured out the full solution. When we use "openssl", if the connection gets terminated with "alert 40" error, that means we should explicitly specify the servername, so that the server can return the right certificate the client is expecting. For example, the following will work:
openssl s_client -connect www.domraider.com:443 -servername www.domraider.com
In my nonblocking OpenSSL, I simply made a mistake in my code. In other words, the "SSL_set_tlsext_host_name(ssl, hostname)" function is the right one the client should use to specify the server name.


Add FaultManagerApi to the public repository

The following APIs are provided through this file:

GET access to all faults
GET access to faults by source and code fields
GET access to a fault by UUID

Is this resolved now?

Issue is resolved with addition of FaultManager.yaml.


Add support for javmix.tv (NSFW)

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I'm running yt-dlp version 2022.07.18 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and am willing to share it if required

Region
United States
Example URLs
https://javmix.tv/fc2ppv/fc2ppv-3049947
https://javmix.tv/fc2ppv/fc2ppv-3064666
Provide a description that is worded well enough to be understood
Attempts to download from the site result in Unsupported URL errors
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://javmix.tv/fc2ppv/fc2ppv-3064328/']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.07.18 [135f05e] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.22622-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: avconv -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: avprobe -bsfs
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.07.18, Current version: 2022.07.18
yt-dlp is up to date (2022.07.18)
[debug] [generic] Extracting URL: https://javmix.tv/fc2ppv/fc2ppv-3064328/
[generic] fc2ppv-3064328: Downloading webpage
WARNING: [generic] Falling back on generic information extractor.
[generic] fc2ppv-3064328: Extracting information
[debug] Looking for video embeds
ERROR: Unsupported URL: https://javmix.tv/fc2ppv/fc2ppv-3064328/
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1431, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1506, in __extract_info
  File "yt_dlp\extractor\common.py", line 644, in extract
  File "yt_dlp\extractor\generic.py", line 4108, in _real_extract
yt_dlp.utils.UnsupportedError: Unsupported URL: https://javmix.tv/fc2ppv/fc2ppv-3064328/

@pukkandan why was this closed?

@pukkandan Does that label mean that the site contains illegal or pirated content?


Add docs survey link to site header

Test plan
Tested locally to see link in header bar and that it takes you to survey.

Maybe some extra styling for that?
Hard to notice.

@bestander Is there an easy way to style just one link within the framework of how we do the HeaderLinks?

@JoelMarcey I would add styles React way here: https://github.com/facebook/react-native/pull/7514/files#diff-b59c25fc31aea75495eca894263bbd37R39
If the section is "survey" then set styles or a class name that changes the color, backroundColor, font etc

@bestander Updated. Does this seem reasonable?

@JoelMarcey updated the pull request.

@JoelMarcey thanks!
Can you add a little more contrast?
And then let's shipit

Green on dark grey does not scream enough IMHO, but I am just a web developer, not a designer

I unashamedly admit my design skills are not good. Not good at all :)

@JoelMarcey updated the pull request.

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review.


Archive repository?

Can we archive this repository? (it will still be available in read-only mode)
cc @koenbollen

Agreed, lets quickly edit the README.md tho.

@koenbollen https://github.com/blendle/eventalize/commit/06cd03f4fb84b72b765c090fba110c3d75201726


[Question] How to get browser session ID?

What are you trying to achieve?
I am trying to migrate a python WebDriver test to a Codeceptjs test. When the test finishes, it posts a link to the suacelabs session like this:
def tearDown(self):
    if is_travis():
        print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
        try:
            if sys.exc_info() == (None, None, None):
                sauce.jobs.update_job(self.driver.session_id, passed=True)
            else:
                sauce.jobs.update_job(self.driver.session_id, passed=False)
        finally:
            self.driver.quit()
    else:
self.driver.close()

Is there an equivalent to self.driver.session_id I can use to get the sessionID in codeceptjs?
Details

CodeceptJS version: v0.4.13
NodeJS Version: 6.9.2
WebDriverIO

I think you need a custom helper
Run:
codeceptjs gh

to create SauceLabs helper
Then your helper should look like:
class SauceLab extends Helper {

  // after corresponds to teardown in your code
  _after() {
     var sessions = this.browser.sessions();
     var session_id = sessions[0].id;
     // do your stuff
  }
}

Please see webdriverio session reference for session id, as I can be wrong in this part.
It is important to make your helper to be declared before WebDriverIO in codecept.json so this.browser to be available inside _after.

@DavertMik That is probably what I want, but it doesn't seem like anything in my helper is being run. I think I have it in my .conf.js file correctly:
if (process.env.SAUCE_USERNAME) {
  exports.config = {
    "tests": "./*_test.js",
    "timeout": 10000,
    "output": "./output",
    "helpers": {
      "SauceLabsSession": {
        "require": "./saucelabs_helper.js"
      },
      "WebDriverIO": {
        "url": "http://<IP_ADDRESS>:5981/apps/_design/bell/MyApp/index.html#login",
        "browser": "Firefox",
        "waitForTimeout": "10000",
        "user": process.env.SAUCE_USERNAME,
        "key": process.env.SAUCE_ACCESS_KEY,
        "host": "ondemand.saucelabs.com",
        "port": "80",
        "sauceConnect": true,
        "desiredCapabilities": {
          "browserName": "firefox",
          "version": "50",
          "platform": "Windows 10",
          "tunnel-identifier": process.env.TRAVIS_JOB_NUMBER,
          "name": "codeceptJS.login_test",
          "build": process.env.TRAVIS_BUILD_NUMBER
        }
      }
    },
    "include": {
      "I": "./steps_file.js"
    },
    "bootstrap": false,
    "mocha": {},
    "name": "tests"
  };
} else {
  exports.config = {
    "tests": "./*_test.js",
    "timeout": 10000,
    "output": "./output",
    "helpers": {
      "WebDriverIO": {
        "url": "http://<IP_ADDRESS>:5981/apps/_design/bell/MyApp/index.html#",
        "browser": "firefox",
        "waitForTimeout": "10000"
      }
    },
    "include": {
      "I": "./steps_file.js"
    },
    "bootstrap": false,
    "mocha": {},
    "name": "tests"
  }
}

And my file saucelabs_helper.js:
'use strict';
let Helper = codecept_helper;
class SauceLabsSession extends Helper {

  isevenrunning(fact) {
     console.log("Test");
     this.log("Test");
  }
  // before/after hooks
  _before() {
    // remove if not used
     console.log("Test");
     this.log("Test");
  }

   // after corresponds to teardown in your code
  _after() {
     var sessions = this.helpers['WebDriverIO'].browser.sessions();
     var session_id = sessions[0].id;
     // do your stuff
     console.log("Link to your job: https://saucelabs.com/jobs/%s", session_id);
     this.log("Test");

  }

  // add custom methods here
  // If you need to access other helpers
  // use: this.helpers['helperName']

}

module.exports = SauceLabsSession;

Thanks for helping :)

Please run your tests with --verbose flag. This will show you all events and helpers enabled.
If SauceLabsSession works it will be shown that SauceLabsSession._after callback is executed

It doesn't show up:

My guess is that env var SAUCE_USERNAME is not defined and the second config part is used.
if (process.env.SAUCE_USERNAME) {

please check it

@DavertMik Thank you for helping me. Sorry I didn't notice that trivial mistake and made you waste your time. It runs now, but the sessionID is undefined, and sessions is "{status: pending}". Any ideas?
$ codeceptjs run tests --steps --verbose
CodeceptJS v0.4.13
Using test root "/home/travis/build/ole-vi/BeLL-Apps/tests"
Login --
   [1] Starting recording promises
   Emitted | suite.before
 > SauceLabsSession._beforeSuite
   [1] Queued | hook SauceLabsSession._beforeSuite()
 > WebDriverIO._beforeSuite
   [1] Queued | hook WebDriverIO._beforeSuite()
 test successful login
   [2] Starting recording promises
   Emitted | test.before
 > SauceLabsSession._before
   [2] Queued | hook SauceLabsSession._before()
 > WebDriverIO._before
   [2] Queued | hook WebDriverIO._before()
   Emitted | test.start ([object Object])
   [2] Queued | amOnPage: /
   [2] Queued | fillField: Login, admin
   [2] Queued | fillField: Password, password
   [2] Queued | click: Sign In
   [2] Queued | waitForText: Set Configurations, 10
   [2] Queued | fire test.passed
   [2] Queued | finish test
Before
   Emitted | step.before (I am on page "/")
 • I am on page "/"
   Emitted | step.after (I am on page "/")
   Emitted | step.before (I fill field "Login", "admin")
 • I fill field "Login", "admin"
   Emitted | step.after (I fill field "Login", "admin")
   Emitted | step.before (I fill field "Password", "password")
 • I fill field "Password", "password"
   Emitted | step.after (I fill field "Password", "password")
   Emitted | step.before (I click "Sign In")
 • I click "Sign In"
   Emitted | step.after (I click "Sign In")
   Emitted | step.before (I wait for text "Set Configurations", 10)
 • I wait for text "Set Configurations", 10
   Emitted | step.after (I wait for text "Set Configurations", 10)
   Emitted | test.passed ([object Object])
 ✓ OK in 17440ms
   Emitted | test.after
 > SauceLabsSession._after
   [2] Queued | hook SauceLabsSession._after()
 > WebDriverIO._after
   [2] Queued | hook WebDriverIO._after()
After
   [3] Starting recording promises
   Emitted | suite.after
 > SauceLabsSession._afterSuite
   [3] Queued | hook SauceLabsSession._afterSuite()
 > WebDriverIO._afterSuite
   [3] Queued | hook WebDriverIO._afterSuite()
   [3] Error | TypeError: Cannot read property 'id' of undefined
   [3] Stopping recording promises
   OK  | 1 passed   // 17s
   Emitted | global.result ([object Object])

Oh, looks like it returns a promise, not an array as I expected.
_after() {
  return this.helpers['WebDriverIO'].browser.sessions().then((sessions) => {
    // do everything you need
  });
}

@DavertMik That works great locally, but when Travis runs it I get an 500 Internal Server Error.
My code:
_after() {
    console.log("After");
    return this.helpers['WebDriverIO'].browser.sessions().then((sessions) => {
      console.log(sessions);
    });
  }

Travis output
Before
   Emitted | step.before (I am on page "/")
 • I am on page "/"
   Emitted | step.after (I am on page "/")
   Emitted | step.before (I fill field "Login", "admin")
 • I fill field "Login", "admin"
   Emitted | step.after (I fill field "Login", "admin")
   Emitted | step.before (I fill field "Password", "password")
 • I fill field "Password", "password"
   Emitted | step.after (I fill field "Password", "password")
   Emitted | step.before (I click "Sign In")
 • I click "Sign In"
   Emitted | step.after (I click "Sign In")
   Emitted | step.before (I wait for text "Set Configurations", 10)
 • I wait for text "Set Configurations", 10
   Emitted | step.after (I wait for text "Set Configurations", 10)
   Emitted | test.passed ([object Object])
 ✓ OK in 16667ms
   Emitted | test.after
 > SauceLabsSession._after
   [2] Queued | hook SauceLabsSession._after()
 > WebDriverIO._after
   [2] Queued | hook WebDriverIO._after()
After
   [3] Starting recording promises
   Emitted | suite.after
 > SauceLabsSession._afterSuite
   [3] Queued | hook SauceLabsSession._afterSuite()
 > WebDriverIO._afterSuite
   [3] Queued | hook WebDriverIO._afterSuite()
  OK  | 1 passed   // 17s
   Emitted | global.result ([object Object])
   [3] Error | Error: 500 Internal Server Error
   [3] Stopping recording promises

The command "codeceptjs run tests --steps --verbose" exited with 0.

Local output
Before
   Emitted | step.before (I am on page "/")
 * I am on page "/"
   Emitted | step.after (I am on page "/")
   Emitted | step.before (I fill field "Login", "admin")
 * I fill field "Login", "admin"
   Emitted | step.after (I fill field "Login", "admin")
   Emitted | step.before (I fill field "Password", "password")
 * I fill field "Password", "password"
   Emitted | step.after (I fill field "Password", "password")
   Emitted | step.before (I click "Sign In")
 * I click "Sign In"
   Emitted | step.after (I click "Sign In")
   Emitted | step.before (I wait for text "Learner", 10)
 * I wait for text "Learner", 10
   Emitted | step.after (I wait for text "Learner", 10)
   Emitted | test.passed ([object Object])
 √ OK in 7971ms

   Emitted | test.after
 > SauceLabsSession._after
   [2] Queued | hook SauceLabsSession._after()
 > WebDriverIO._after
   [2] Queued | hook WebDriverIO._after()
After
   [3] Starting recording promises
   Emitted | suite.after
 > SauceLabsSession._afterSuite
   [3] Queued | hook SauceLabsSession._afterSuite()
 > WebDriverIO._afterSuite
   [3] Queued | hook WebDriverIO._afterSuite()

  OK  | 1 passed   // 8s
   Emitted | global.result ([object Object])
{ state: 'success',
  sessionId: null,
  hCode: 22225068,
  value:
   [ { capabilities: [Object],
       id: 'c944bd29-7379-47c8-9695-a1a8230033a0',
       hCode: 1274997,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' },
     { capabilities: [Object],
       id: '86e609b3-290a-4af6-a669-a7c7f44a204a',
       hCode: 9137327,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' },
     { capabilities: [Object],
       id: 'a66bd753-3931-4bcc-a5fe-47b56ac2dd5d',
       hCode: 32717890,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' },
     { capabilities: [Object],
       id: '3ad15b44-f4e8-4cc0-99d9-3fe1bd19e5d5',
       hCode: 17510288,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' },
     { capabilities: [Object],
       id: '20fa0295-eb58-4b3c-9586-5f41844632e1',
       hCode: 3429336,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' },
     { capabilities: [Object],
       id: '0ad21a6b-ec8f-4665-b684-0461092c1efa',
       hCode: 29337701,
       class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' } ],
  class: 'org.openqa.selenium.remote.Response',
  status: 0 }

On the saucelabs archive it says Your test errored. Test did not see a new command for 90 seconds. Timing out. I think node might be crashing for some reason, but I don't know how to find an error log on travis.

Ok, probably sessions() is not what we look for. 2 alternatives ( I didn't try them, so please check)

var sessionId = this.helpers['WebDriverIO'].browser.requestHandler.sessionID
console.log(sessionId);

var session = this.helpers['WebDriverIO'].browser.session();
console.log(session);

@DavertMik I think sessions is fine, if you look at the local output it had plenty of information in the JSON it outputted when I did console.log(sessions), but that doesn't seem to output anything on Travis CI, which is confusing me. I can try those other things if you want though.

Yes, please try them. Probably they can work better.

@DavertMik
Okay, method 1 worked, method 2 gave me the {status: pending}  thing again.
Thank you so much for your help, it really makes me happy to have this working now.


Missing doc for javascript module "crypto"

There's not documentation generated for "crypto" module yet.
I tried to read the source and came up with some questions:

what algorithms can crypto.hmac accept?
what are these functions and what do they do? crypto.createNonce, crypto.checkAndMarkNonce and crypto.constantEquals

Documentation for require("org/arangodb/crypto") is still missing. @13abylon : can this be added soon?

Preliminary documentation for the module has been added in the development version of 3.0.


Prepare version 1.0.0 🚀

Changelog:

Graduates the library to version 1.0.0 🎉
Adds support for passing attribute tags to the schema
Removes the custom types inside the macro because they can conflict with user-defined types
Adds benchmarks script and results to the documentation
TO DO: Update documentation (including goal.ex!)

Migration instructions:

If you used Goal's types that were included in the macro:
a. Replace those types with your own types.
b. The compiler will let you know if there are were any references

This version addresses https://github.com/martinthenth/goal/issues/64


Add support for sending Sense log events to New Relic

As of 8.0.1 there's just a placeholder function for this.
Complete that function so Sense log events can be properly forwarded to New Relic.
Add config settings to control which log levels should be forwarded (error, warn, info, verbose, debug)

Implemented as of 9.1.0


Fix breakage in Python < 2.7.9

Checked if ssl has attribute create_default_context before using it.
This was introduced in Python 2.7.9 so in older versions this code would break without the check.

:+1:


import more data using the-law-factory-parser

https://github.com/regardscitoyens/the-law-factory-parser

the data fetching script is very slow (at least 1min / law); presumably mainly because the web APIs being used have a very high response time
parallelism improves things a bit
most laws don't work and will cause an infinite loop : only ~290 laws "possibly work" (in a total of 3000+)


⚠ Bofrost.lu has degraded performance

In 2c92596, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1037 ms

Resolved: Bofrost.lu performance has improved in 3aa4db5 after 15 minutes.


"copy" button does not work

Ubuntu 23.04, Firefox 119.0.1
Is it just me or the "copy" button to copy snippets of code does not do anything? I tried multiple pages and none of them work. Thanks!

Indeed it's also broken on MacOS + Chrome. Example page:
http://duckdb.org/docs/guides/import/csv_import
@Franz-Kafka @jonathanauch could you please take a look?

That's weird - it still does not work. I have the clipboards events enabled (other copy buttons in other websites such as GitHub itself work no problem).

Ah no nevemind, opening a private window makes it work. Probably I am using a cached version of the website. All good :)


Make the code compatible with Python-3.9

Fixes syntax warning (that prevents packaging of the extension):
lib/Slicer-4.13/qt-scripted-modules/MeshStatistics.py:418: SyntaxWarning: "is" with a literal. Did you mean "=="?

Thank you. @allemangD what do you think about removing the redundancy between the two instances of this module? (see https://discourse.slicer.org/t/mesh-statistics-does-not-appear-in-4-13-0-version/21822/2)


Can i get plugin config when extending the admin api ?

Summary
I put api.lua in plugin directory, according to official document, Extending the admin api
But how can i get plugin config when extending the admin api, just like in handler.lua:
Plugin:access(config)
Additional Details & Logs

Kong version: 1.4.2
Operating system: Docker official image

Admin API has no connection with invidual plugin configuration stored in plugins table, but sure you can excute query in plugins table to find one.

Admin API has no connection with invidual plugin configuration stored in plugins table, but sure you can excute query in plugins table to find one.

Thank you. I have already implemented the admin business api in plugin handler, it works well.


copy(): making a copy of a mask copy will crash.

that should not happen :sad_parrot:

picked up in #780


[cxx-interop] Out-of-line overloaded operators are printed twice in the module interface

See test/Interop/Cxx/namespace/Inputs/free-functions.h:
namespace FunctionsNS1 {
struct X {};
inline const char *operator+(X, X) { return "FunctionsNS1::operator+(X, X)"; }
}

In the generated module interface, operator+ is printed twice: once as a member of enum FunctionsNS1, and once again as a global function. The operator is actually imported as a global function, and Swift should only print it as a global function.
(test/Interop/Cxx/namespace/free-functions-module-interface.swift)

@egorzhdan Please checkout my forum post where I have describe to what extent I have read and analysed the project and what would be the potential next steps to get myself familiar to the codebase, maybe also start committing some changes for a good proposal!

Forums


id4-rosecurrency

Account address and device make and model and OS version are at c3cf146

confirmed:ID4
AccountAddress:3myvqokyzc8EkehYrK2FcopkC5L3omGU15F5DQUD6m3EGDHaAK
DeviceDetails:verified

confirmed:ID4
AccountAddress:3myvqokyzc8EkehYrK2FcopkC5L3omGU15F5DQUD6m3EGDHaAK
DeviceDetails:verified


Skip .bin folder

Why is there a .bin backup?
My gist: https://gist.github.com/lijunle/dc525bf70a8927604a50/816f39c4521153f238fad26f86192dd2f627f95f#file-atom-package-sync-cson-L1

There is a .bin directory in the ~/.atom/packages directory
It had excluded now


Notifications are duplicated and delayed when doing some file operations in groups

Tester (if different from issue creator): Kathleen
Site: hcommons
URL: https://hcommons-dev.org/groups/pietrs-test-group/documents/
Test Account: hctester30
Area (CORE, sites, profiles, groups, general): groups
If issue discovered on dev, does it also exist on prod? No
Describe the issue
Some pop-up results messages are coming one event late. (1) I tried to upload a md file, and it failed as an unsupported filetype. (2) I tried to upload a pdf, and it succeeded, but I got an unsupported filetype popup. (3) I deleted the pdf, and it succeeded, but I got a "successfully uploaded" popup. (4) I then clicked on "Files," and got a "successfully deleted" popup.

The issue is more general: it occurs whenever an AJAX action triggers a notification but not a page refresh.
It seems to be caused by a combination of AJAX requests and cookies being set and checked, where AJAX requests do not trigger the buddypress code that would clear the cookie, and so the notification is displayed while the cookie with the notification remains, triggering the notification to be displayed again on the next page load.

The following function, triggered after a notification is displayed, appears to solve the issue:
humanities-commons/humanities-commons.php
public function hcommons_prevent_bp_message_duplicates() {
		global $bp;
		$bp->template_message = null;

		@setcookie( 'bp-message', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() );
		@setcookie( 'bp-message-type', false, time() - 1000, COOKIEPATH, COOKIE_DOMAIN, is_ssl() );
	}

This function does two things:

It prevents a message from being displayed twice on the same page load. This is because the 'template_notices' action is triggered twice on docs and files page loads: once in the group header and once in the documents template. I think this is a change introduced by the upgrade. Without this, you can sometimes see the same message displayed twice: once as a pop-up, and second as an inline message above the documents list. Or, if an AJAX request is responsible, there will be two messages, out-of-step.

It removes the cookie for displaying the message, if it exists.

This function only triggers after a message is displayed, so it shouldn't cause any notifications to go unseen.


(paint.net) install fails silently

Expected Behavior
Paint/net should be installed
Current Behavior
The logs aren't very helpful - they say the installer exited with code 0 (success) but then when chocolatey went looking for signs that the app installed successfully it couldn't find anything.
Looking in the Windows event log, the installer crashed with this exception:
Application: SetupFrontEnd.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
at System.Windows.Forms.MessageBox.ShowCore(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon, System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxOptions, Boolean)
at PaintDotNet.SystemLayer.UIUtil.MessageBoxClassic(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.SystemLayer.UIUtil.MessageBoxViaTaskDialog(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.SystemLayer.UIUtil.MessageBox(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.Setup.SetupWizard.Main(System.String[])
Possible Solution
I think the installer is trying to display a dialog window and maybe it's running without access to the desktop?
Steps to Reproduce (for bugs)
choco install paint.net
Your Environment

Package Version used: latest
Operating System and version: windows 7
Chocolatey version: Chocolatey v0.10.11 Business
Install/uninstall gist: choco install paint.net

same, but on windows 10 1903.

I can't confirm this. I am using it all the time on multiple machines on W10. Its upstream problem and probably related to your own setup.
I sugest you check if it works via Windows Store. You could also try if portable version changes something. https://portableapps.com/node/26591

Closed due to no feedback.

I can confirm i have a similar problem: Installation does not work if it is running as System user and 'headless'; check also my comment at https://chocolatey.org/packages/paint.net

You can reproduce this problem by creating a 'headless installer' (of remover) in the Windows task scheduler. For example:

import XML in schedule
adapt it if necessary (SYSTEM user should be filled in in Security section in GUI)
start task manually

2020-09-24T08:28:08.6394198
WIN10-VM-MWHOME\LocalUser
\PAINT.NET install

S-1-5-18
HighestAvailable

IgnoreNew
true
true
true
false
false

true
false

true
true
true
false
false
PT72H
7

C:\ProgramData\chocolatey\choco.exe
      install paint.net -y

After running 2x an app error event:
#1
Application: SetupFrontEnd.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
at System.Windows.Forms.MessageBox.ShowCore(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon, System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxOptions, Boolean)
at PaintDotNet.SystemLayer.UIUtil.MessageBoxClassic(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.SystemLayer.UIUtil.MessageBoxViaTaskDialog(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.SystemLayer.UIUtil.MessageBox(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon)
at PaintDotNet.Setup.SetupWizard.Main(System.String[])
#2
Faulting application name: SetupFrontEnd.exe, version: 4.213.7521.38873, time stamp: 0x5f29d4fd
Faulting module name: KERNELBASE.dll, version: 10.0.16299.1004, time stamp: 0x24dfd7d5
Exception code: 0xe0434352
Fault offset: 0x0000000000045518
Faulting process id: 0x12b0
Faulting application start time: 0x01d6923c0b2deaed
Faulting application path: C:\Windows\TEMP\chocolatey\PdnSetup\SetupFrontEnd.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: dad1c885-7333-491c-8eb1-7422528f47cb
Faulting package full name:
Faulting package-relative application ID:

at System.Windows.Forms.MessageBox.ShowCore(System.Windows.Forms.IWin32Window,

I believe this is an upstream problem, not choco releated - installer shouldn't show any GUI in silent mode and it will probably work. This is regular Windows protection - you can't run GUI as system as Desktop is not available.
See more:

https://docs.microsoft.com/en-us/windows/win32/winstation/window-station-and-desktop-creation?redirectedfrom=MSDN
https://voicent.com/ivr/blog/index.php/ivr-developer/530/utilizing-windows-task-scheduler-to-run-gui-applications-from-system-account

Thanks for the feedback. I think more persons or organisations do have this problem as I can see in this issue.
I have no experience with creating of modifying Choco packages.

I tested substracting MSI from the setup EXE, but again it shows a status screen. So that will probably also deliver a problem for "real time MSI generation". Probalbly the ony option: the installer is really unattended/quiet.

OK, only other option seems portable installation.


Add Content-Range support to the PUT api/worker/objects/:key Endpoint

Description
When doing an API call like this:
PUT /api/worker/objects%2F1536-f.txt?bucket=default HTTP/1.1
and passing headers like this:
Content-Length: 2477
Content-Type: application/octet-stream
Content-Range: bytes 4096-6573/

the renterd API should honour and accept the Range. Currently, it ignores it and when sending a file in 2 ranges, the second range overwrites the first one.
This would make easier the coding for the siafs (grant). Also, it is a good idea to keep the API to honour the HTTP headers when dealing with files.
Version
v1.0.6
What operating system are you running (e.g. Ubuntu 22.04, macOS, Windows 11)?
Linux
Anything else?
RFC: https://datatracker.ietf.org/doc/html/rfc7233#section-4.2
Log:
> PUT /api/worker/objects/1536-f.txt?bucket=default HTTP/1.1
Host: <IP_ADDRESS>:9880
Authorization: Basic OXXXXXXX==
Accept: */*
Content-Length: 2477
Content-Type: application/octet-stream
Content-Range: bytes 4096-6573/*

Sia in its current state doesn't support updating ranges of files and therefore ignores the Content-Range header.
For uploading an object in chunks you can use the multipart API but updating already uploaded objects isn't currently on our roadmap.


Consumers created via Kong Administrative API are deleted

NOTE: GitHub issues are reserved for bug reports only.
For anything else, please join the conversation
in Kong Nation https://discuss.konghq.com/c/kubernetes.

Summary
Consumers that are created using the administrative API are deleted after a period of time.
Kong Ingress controller version 0.1.0
Kubernetes version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-08T16:31:10Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Environment

Cloud provider or hardware configuration: AWS
OS (e.g. from /etc/os-release): Debian 8
Kernel (e.g. uname -a): 4.4.121-k8s
Install tools: kops
Others:

What happened
Consumers that were created via a direct integration to the Kong admin interface are removed after a couple of minutes
Expected behvaior
Consumers created from the administrative interface to not be removed
Steps To Reproduce

Deploy Kong Ingress controller using the documented all-in-one-minikube methodology: https://github.com/Kong/kubernetes-ingress-controller/blob/master/deploy/minikube.md
Create consumers using the administrative api in Kong
Verify consumers exist
After about 5 minutes, check list of consumers and verify that list is empty

Hello @nHurD,
Thank you for opening this issue.
I'm afraid what you're observing is an expected behavior 0.1.0 onwards as noted in the changelog.
Currently, all the entities in Kong are managed by the Ingress Controller, meaning any entity which doesn't have an associated object in k8s object store, will be remove by the ingress controller.
You can currently create KongConsumer custom resources in k8s, which will be synced via Ingress Controller to Kong.
Having said that, in future, consumers and other entities in Kong created manually will not be deleted by Ingress Controller. This is currently not possible as the entities created by Ingress Controller and those created directly via Admin API of Kong cannot be differentiated, making the syncing of entities from k8s to Kong a challenge. This will solved once Kong includes a feature to tag or label entities.

@hbagdi Can I ask another question? Can Kong Ingress Controller sync entities from K8s to Kong automatically now? Do I have to create Kong entities by yaml manually?

@leoatpolaris,

@hbagdi Can I ask another question?

Sure :)

Can Kong Ingress Controller sync entities from K8s to Kong automatically now?

That is primarily what this controller does. You create resources (like services, ingress rules) in k8s and the ingress controller syncs all those resources to Kong.

Do I have to create Kong entities by yaml manually?

Yes, you'll need to create the entities in k8s. You can automate it, it doesn't have to be manually. Please refer to our getting started guide for a better understanding.

Hello
Is there any news about this issue? It has been closed but being bound to statically, YML-declared consumers is still problematic in production use cases
For instance, we may have a service that calls the kong API in order to create kong consumers dynamically (upon app user creation for instance). This behavior cannot work using kong-ingress-controller because the periodic sync will delete all of these entries
What kind of workaround would you suggest? Would calling the Kunernetes API from the user creation code in order to create a KongConsumer entry be considered a good practice?

Hello
Is there any news about this issue? It has been closed but being bound to statically, YML-declared consumers is still problematic in production use cases
For instance, we may have a service that calls the kong API in order to create kong consumers dynamically (upon app user creation for instance). This behavior cannot work using kong-ingress-controller because the periodic sync will delete all of these entries
What kind of workaround would you suggest? Would calling the Kunernetes API from the user creation code in order to create a KongConsumer entry be considered a good practice?

Hi @julianguinard

Is there any news about this issue? It has been closed but being bound to statically, YML-declared consumers is still problematic in production use cases

I totally get this point and this is an issue that we are going to solve in the next couple of releases.

What kind of workaround would you suggest? Would calling the Kunernetes API from the user creation code in order to create a KongConsumer entry be considered a good practice?

This is the only work around that exists to get around this problem (Kong Enterprise users can use workspace feature to get around this problem).
Although, this approach is not scalable. If you have a few hundred or a few thousand consumers in Kong, it should be fine, but larger than that, and this solution is not really feasible.
How are we going to solve this in the upcoming releases?
We developed tagging feature in Kong 1.1 specifically to solve this problem.
In the future releases of the Ingress Controller, all the entities created by the Ingress Controller will be tagged and it won't manage all entities in Kong.
Meaning, if you wish to manage Consumers via another service, that will be possible.
Please stay tuned and follow #246 for updates!


providing podman-compose.yaml

It would be helpful to have a working podman-compose.yaml
It started with
version: 3.7

services:
     unms-exporter:
         image: quay.io/ffddorf/unms-exporter
         conateiner_name: unms-exporter
         command: /usr/local/bin/umns-exporter --config /config.yaml
         volumens:
             - /home/pi/config.yaml:/config.yaml

feel free to open a pull request!


OCPBUGS-2934: unlink events unix socket during shutdown

to be to reuse unix socket we have to unlink them
when the events container is shuting down
To repro on kind we can restart the node container for example
 docker restart kind-worker

from the event container
 k logs -n ingress-node-firewall-system   ingress-node-firewall-daemon-pkfrd  -c events --previous
2022/10/28 21:19:59 Caught signal terminated: shutting down.

Signed-off-by: Mohamed Mahmoud<EMAIL_ADDRESS>

/assign @martinkennelly @andreaskaris

/jira refresh

/test unit-test

/jira refresh

/test images

/jira refresh

/jira refresh

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/cherry-pick release-4.12

/lgtm

/lgtm


Add languageTool.enabled configuration

Hi @adamvoss !
I added languageTool.enabled to allow enable or disable languageTool in a specific workspace.
I know that you can disable extension using VSCode but the actual behavior forces to enable Always and only disable for some workspace. See #15611
My use case introducing this new configuration is to avoid running the java process everytime VSCode starts and only run java process when languageTool.enabled = true in settings.json global or in workspace (default is true).
PD: I compiled languagetool-languageserver and tested this changes in my computer. (all ok)

@faustinoaq Looks great!
Reading through your description and the linked issue, I just want to make sure that this is the best solution for the problem.
If I understand correctly, with this change, you will need to set languageTool.enable = false in user settings, then opt-in via per workspace settings.  This seems like the best solution to work around #15611.
You mention wanting to avoid running java every-time VSCode starts.  I am fairly certain this is because of Microsoft/vscode#28732.  The workaround I added for that (#3) was on the Java side.  If this is the issue (not that you don't want LanguageTool on most workspaces), I should be able to rework the activation on the extension side to not activate for all those "virtual" files that triggers the extension to start.
Also, out of complete curiosity, because I am interested in such things:  what does 'PD' stand for?  I understand it from from context, but it is not an acronym commonly used around me.

PD: PostData :sweat_smile:
I'm already running these changes in my local extension and java process is only executed when workspace settings.json have languageTool.enable = true.

PD: PostData :sweat_smile:

Gotcha, thanks! :smile:

I'm already running these changes in my local extension and java process is only executed when workspace settings.json have languageTool.enable = true.

I agree that is the behavior of this change and it is clearly a "good enough" solution for you that you took the time to implement it (thanks! :+1: ).  What I am wondering about is whether you really want to need to opt-in to LanguageTool on every avoiding Java launching.
If your original goal was to have explicit opt-in, I am happy to release this.
If your goal was to avoid Java launching as much, I am interested in better understanding when it would be okay to launch Java to see if there is a way that is easier for users so they would not need to to remember to opt-in if they also want Java to open less.

My original goal is have explicit opt-in :sweat_smile:
Avoid Java launching as much could be hard to solve. I'm think that an explicit opt-in is a good solution.

I seem to have an issue with the recent Travis CI update.  I will have to fix that before I can merge and release this.


Add option to show color circle inside picker independent of color history

Currently it is only possible to show the color circle in conjunction with the history feature. It would be nice to be able to show the color circle when just choosing a color, thereby providing a more prominent preview of the selected color.

@mpost By default the history feature is disabled.It is only there if you specifically enabled it.

I am aware that the history feature has to be enabled explicitly.
What would be nice though is to have the center circle just display the color currently selected on the picker (without history).
While moving on the wheel it is not possible to see what color is actually selected so a preview would be nice. Also the circle is larger so it is easier to judge the color.

@MarieSchweiz What do you think? Should we consider this when there is no color selected?

yeha, sounds good for me