Loa gamelib

Added a new DisplayLib class which is similar to GameLib. DisplayLib is to be used by all the front end things where as GameLib is where the code lives for the variant.
Previously this was always the same thing, but with LinesOfAction we have the code living in chess (possibly should rename it) but we dont want to display it as a Chess variant - we want it to be its own 'Game Family'.
I think this is a fairly neat way that involves minimal changes on the strategygames side to make variants know that they have a GameLib and a DisplayLib which can be different.

I've generally reviewed both PRs, and although I have some general comments on the lila ones, they are all related to the way the lila code was already organized, not the way you did your stuff.
My primary comments are naming. I think we may as well get the naming stuff as close to "right" as we can right now.  I think we should rename the "GameLib" and "DisplayLib" stuff.  I haven't fully settled on the naming, but the way I see it is as follows.
We have some something that represent the entire set of games that we have and their names, and which code is used for them.  I think it might make sense to call this the "Game Library" or something similar. In this case, I mean it as in a "Book Library" rather than as a "Code Library".  The idea is that this Library represent our entire collection of games available in play strategy.
Next, we have the one that represents the mapping to where the code lives for the implementation. CodeLib isn't too bad for this, and in this case, I mean Lib in terms of a coding.  So we could have the CodeLib.Scalachess which is currently where the LOA implementation lives and CodeLib.Draughts which is where the current draughts implementation lives.
Finally, we have an object which represents the conceptual organization of the games for the front end.  In this case, I think I prefer to avoid the word "Lib", and I've gone for calling it Family because they are all related to each other.   In any case, my point here is that the Scala module which contains them can be called GameLib and then the mapping to the right backend code is GameLib.CodeLib and then the mapping to how they're organized on the front end is GameLib.Family
Ok. Now that I've described all of this, I'll admit that I'm not particularly tied to the actual names we chose. But I do think we're naming three things.  And the conceptual organization of the names makes sense to me.  So I'd even be fine with something else, like: GameCollection.CodeLib or GameCollection.Category or any other terms that you might use to organize various abstract strategy games into ones which are related or are just variants of each other.
Aside from this naming stuff, this PR and the Lila PR look good to me. Good job.

Just thought of another possible name:
GameLib.Backend which is either GameLib.Backend.Scalachess | GameLib.Backend.Draughts
I kinda like the name Backend

How about GameCollection.GameLogic for the backend, e.g. GameCollection.GameLogic.Draughts
and then for the front end, GameCollection.DisplayLogic
I'm not quite sure what is in "GameLogic" and "DisplayLogic" to know if that's the right descriptor, but I think that helps to explain the library better? I like the word Category (but I think this would imply the display/logic for the base game and then variants would inherent from that class?)

Seems like there is four things to name:

The file that is current called GameLib.scala, I'm happy calling this GameCollection.scala. However if my understanding of imports is correct, we wont refer to this GameCollection name anywhere in the codebase, unless you are suggesting to move it into its own subdirectory like 'chess' and 'draughts' currently?
I had never considered GameLib as a library like a book library, so agree its confusing. Happy to rename the GameLib class to GameLogic.
For DisplayLib I think GameFamily fits best and is what is used on the front end.
The chess subdirectory should be renamed as it has more than chess (LOA currently) and can be called scalachess to represent its heritage but could be something else new like base or general.


Discrepancy between action vector and joints_angles observation

Hello!
I hope I can post this a bit longer question here.
I am testing an integrated motor babbling control with -ct random argument for panda robot with following relevant config:
  "robot": "panda",
  "robot_action": "joints",
  "robot_init": [-0.4, 0.6, 0.5],
  "max_velocity": 10,
  "max_force": 100,
  "action_repeat": 1,

  "task_type": "reach",
  "task_objects": [
    {
      "init": {
        "obj_name": "cube_holes",
        "fixed": 0,
        "rand_rot": 0,
        "sampling_area": [-0.3, 0.3, 0.4, 0.6, 0.1, 0.1]
      },
      "goal": {
        "obj_name": "cube_holes",
        "fixed": 1,
        "rand_rot": 1,
        "sampling_area": [5, 5, 5, 5, 5, 5]
      }
    }
  ],
  "observation": {
    "actual_state": "obj_xyz",
    "goal_state": "obj_xyz",
    "additional_obs": ["joints_angles"]
  },

All I try to do is to print out a performed random action and subsequent observation from the environment in the timestep loop of test_env() function in test.py:
print(f"Action:{action}")
observation, reward, done, info = env.step(action)

print(f'Observation: {observation}')

If I understand it correctly, a sampled action in this case should be a new joint configuration, so the joints_angles segment of the subsequent observation vector should be almost the same as the action vector. It seems to work like this when using slider control:
Observation: [-1.10144916e-01  4.91167079e-01  7.49899258e-02  4.99990013e+00
  4.99999489e+00  5.00000000e+00  4.37333765e-01  9.72781516e-01
  1.87621376e-01 -1.22585735e-01  1.31177055e+00  1.44094002e+00
  2.36656491e-07  0.00000000e+00]
Action:[0.4373335838317871, 0.9727801084518433, 0.1876215934753418, -0.12258744239807129, 1.3117706775665283, 1.4409408569335938, 0.0]
Observation: [-1.10144915e-01  4.91167079e-01  7.49899302e-02  4.99990013e+00
  4.99999489e+00  5.00000000e+00  4.37333765e-01  9.72781516e-01
  1.87621376e-01 -1.22585735e-01  1.31177055e+00  1.44094002e+00
  2.36656491e-07  0.00000000e+00]`

However, when using random control, those values do not seem to correspond:
Action:[-0.51481533  1.6324749   2.1036975  -0.27616423  0.8946579   3.0306137
 -2.3106954 ]
Observation: [-0.08972217  0.40780999  0.09965184  5.00003808  4.99990754  5.
  0.41807567  0.9652326   0.22699737 -0.16194521  0.21542613  1.48197385
 -0.04166675  0.        ]
Action:[-2.3407836   0.99039567  2.1191826  -1.9024386  -1.879574    3.793361
 -1.682037  ]
Observation: [-0.08972217  0.40780999  0.0992242   5.00003808  4.99990754  5.
  0.39251881  0.96309263  0.27012038 -0.20360899  0.17760391  1.52364036
 -0.08333349  0.        ]
Action:[ 2.4431515 -1.5354003 -1.1559559 -1.2074044  2.5261626  3.121788
  1.876207 ]
Observation: [-0.08972217  0.40780999  0.09862862  5.00003808  4.99990754  5.
  0.37897825  0.95914598  0.22845184 -0.24527874  0.21926947  1.56530642
 -0.04166699  0.        ]

So I wanted to ask, whether I misunderstood what the action vector represents, or whether there is a problem causing this discrepancy.
Thank you very much.

Hi Miro.
The problem is in randomness of the actions sampled. We use this mode only to test, whether all joints are moving. If you use them to control action, you will face the difference between PLAN and REALITY. Random parameter will sample any number to control joints, but s they are executed within one simulation step, the arm will move toward this direction based on speed and force. It is not able to reach distant positions within one step (physical limitation). You can use random parameter, but you need to increase speed and force in config:
"max_velocity"  :30,
"max_force"     :500,
if you want to reach even distant position in one step you have increase third parametr:
"action_repeat" :20
it will run 20 simulation steps between each action to reach even distant goals.
But as I said, random is not good way to control robot. If you want motoric babbling, run the untrained network in step robot_control mode, it will guarantee you small increase in end effector position, reachable within one simulation step

Oh, I understand now; thank you.

Closing this issue, let us know if you need any more help


Imported Soap project returns only errors when Sequence Strategy is selected

I imported my xml file as new soap project and it works fine as long as I select "Random" as Response strategy. However as soon as I change the strategy to Sequence I get only

as mock response. Am I doing something wrong?

Hi @DFranzen.
Thank you for raising this bug. The problem was that the current sequence number wasn't exported which resulted in sequence number being null when importing the SOAP project. The problem occurred in version 1.21. The issue has now been resolved. I have created a new release (1.22). It can either be downloaded from the webpage (https://castlemock.com/) or from Docker.
I apologies for the inconvenience and thank you again for bringing this to my attention.
Please feel free to create more tickets if you find anything else or need any support.
Best regards,
Karl Dahlgren

Thanks for the quick update. I downloaded the new docker image, but I still have some issues with the Sequence Strategy:

If I import my xml-file now and CHANGE the strategy to Sequence I still get the same error message. Only once I export the changed project and reimport it, it starts working. Is there still a problem with changing to Sequence maybe?
The order of the responses after the (original) import is not as in the xml-file.  My file has the mock responses embedded in each operations-block (I noticed the export now puts the responses outside and references the operationid). The ids for the responses are in ascending order, I have no idea where the new order comes from.


File Input Button for Safari

In Safari 16.1 (186<IP_ADDRESS>.12), the File Input component's button doesn't render correctly.
Safari:

Edge (Chromium):

Notice how the corners aren't properly rounded on the button. This is using the "night" theme but is the same for different themes.

I seems like this could be caused by the tailwind's file:rounded property not being set and I was able to fix it by adding file:rounded-md for example into the component class.
See the note on Tailwind's border reset not being applied having to use this class at the bottom of this heading:
https://tailwindcss.com/docs/hover-focus-and-other-states#file-input-buttons


Sync issues with withEvents(true) and manyToMany relationships

Hi, I got an issue when using a manyToMany with withEvents(true) relation when I link Item1 to Case1 & Case2 (both at the same time). The link is good in Item1, I can see both Case1 & Case2, but the opposite link isn't good, only Case1 is linked to Item1 and not Case2. If I remove withEvents(true) then, everything works fine, all links are created !

It's quite possible that the additional events are causing data to be overwritten currently. Can I ask the use case for needing the events triggered during the sync process (just curious)?

We are using it for the Git Automation, to push both files to git !

I see. I'll review options to fix this, but it may take some time to resolve, and cannot guarantee any timelines.

Hi, any updates ?

Not yet, unfortunately. I've been quite busy, but will try and find time soon to take a look!

Running into issues with oneToMany. Will try to create a test repo and a specific issue tomorrow. Thanks John for your awesome work!

Resolved with 2.1.5


fix: Remove double brace in link markdown

@nschonni Thank you for your contribution, I'm merging this and it should be live shortly.


Drop numpy/math.pxd

See discussion in https://github.com/cython/cython/pull/5842. This file was in Numpy until faily recently so dropping it is potentially breaking. However, it'd still be nice to remove it so putting it up for review.

This file was in Numpy until faily recently

I don't think this was ever in NumPy. I proposed adding it in numpy/numpy#25594, but the discussion there convinced me to change course, drop the cimport numpy.math as npmath and use imports from libc.math instead.
As discussed in #5842, there is a lot of code out there that uses from numpy.math cimport ... and at least one cimport numpy.math, so dropping math.pxd would need a deprecation period and some documentation teaching how to use libc.math instead.

I don't think this was ever in NumPy.

Ah sorry. I meant to say "wan't in Numpy until fairly recently" but it sounds like even that isn't true.
I'll have another look later. I don't think we have an easy way to do a deprecation warning for a pxd file which makes it a little more awkward.

No big rush. There is also a problem of how to teach this. For some math functions, it is a simple from libc.math cimport inf, isnan but for others you need to replace
from numpy.math cimport copysign, PI

with typed imports from the header with possible renaming
cdef extern from "numpy/npy_math.h" nogil:
  double copysign "npy_copysign"(double, double)
  const double NPY_PI

PI = NPY_PI

Maybe the first stage would be to deprecate the functions that can easily be replaced by libc.math functions.

At least using the example above, both are in libc.math
https://github.com/cython/cython/blob/f3cad15100da00936b3ac31865c28d22eb95c108/Cython/Includes/libc/math.pxd#L8
https://github.com/cython/cython/blob/f3cad15100da00936b3ac31865c28d22eb95c108/Cython/Includes/libc/math.pxd#L54

Think the include paths would need to be handled carefully to ensure NumPy is searched for Cython files before falling back to the Cython included ones
Otherwise cimport numpy might not resolve and cause other issues

Think the include paths would need to be handled carefully to ensure NumPy is searched for Cython files before falling back to the Cython included ones

This has already been done in #2905. But is that relevant? This file is called numpy/math.pxd but it does not live in NumPy. It only lives in Cython, and NumPy is not interested in "adopting" it.

Maybe this is an option for consideration?

Only after a long deprecation period, and once all the exposed functions and macros are converted to ones that use libc.math. One step toward this would be to replace calls to numpy in math.pxd to ones in libc.math.

Ok great! Wasn't sure whether things would work. Glad to hear that is not a concern
Maybe we could soften #error to #warning or a #pragma and keep the file above. Or some other such change
Should add wasn't meaning we should go with that code verbatim. Just providing a starting off point for discussion/brainstorming

If the numpy header doesn't do anything special on top of libc.math, then I'd first migrate all declarations in numpy/math.pxd to use libc's math.h instead, except for the few that come directly from NumPy. Cython would still include both header files if people cimport from the pxd, so it doesn't help much, but it would at least make it clear that users are probably better off with libc.math directly.
I'd then also add a clear C warning, as @jakirkham suggested. That seems fine for Cython 3.1, which intentionally drops old cruft and asks users to migrate.

OK, I will work on a (few?) PR(s?) to replace this one in the spirit of that comment

make sure there is complete coverage for all exported symbols by looking at the existing tests/run/numpy_math.pyx and possibly expanding it
move as many declarations as possible from numpy to cmath
Then let's re-evaluate what is left. One small glitch: numpy has a mechanism to blocklist some buggy math routines and replace them with less buggy implementations. Luckily most of these are complex routines, and it doesn't seem like math.pxd has complex declarations.


Fix credentials file name in README.md

The module tries to retrieve the AWS access credentials from '$::settings::confdir/puppetlabs_aws_credentials.ini' and not from '$::settings::confdir/puppetlabs_aws_configuration.ini', which only stores other module configuration like AWS region or a proxy server url but no credentials.

Thanks!


Support sending audio attachments

Rasa Core version:
0.8.3
Python version:
3.5
Operating system (windows, osx, ...):
Ubuntu 16.04
Issue:
Hi,
I need a bot to be able to send audio attachment via output channel (currently, only image attachments are supported). Do you have this feature in the roadmap? I can implement it (at least for console and Facebook) and make a pull request.
Thanks,
Alex
Content of domain file (if used & relevant):

closing bc we're refactoring I/O channels anyways


[Map] Add custom tiles support via MKTileOverlay + UIExplorer examples

<MapView tilesSource={'http://tile.openstreetmap.org/{z}/{x}/{y}.png'} />

This would be a great addition. In addition, how difficult would it be to also support a callback that would return the tile source URL, for example if some calculations are required on the x, y and z parameters?

I'm closing it, since it's pointless now.  Could you provide some links to third party plugins which handle that ?

@thiphariel this looks awesome https://github.com/mapbox/react-native-mapbox-gl

@ptmt yeah, but we can only use mapbox tiles, not custom or OSM servers. If you know a plugin that allows that, I'm looking forward...

@thiphariel sorry, it seems you're right. I couldn't find anything now. I'm reopening this, but with no hope to merge it into master, since react-native core contributors are really overwhelmed at the moment. I'm not able to extract this into a standalone plugin, maybe you can help?

Hum, right now, I do not have enough time to do it, I'm sorry :/ I prefer not to get into a task I could surely not complete ... Maybe someone else can help. Otherwise, no problem, perhaps it could be merged on master one day.
Anyway, thanks !

@AaaChiuuu would you mind taking a look at this pull request? It's been a while since the last commit was reviewed.

Just read the whole discussion and based on it I think we should close this. To keep the number of open  PRs under control, all PRs should either be actively worked on or closed. If anyone has time to continue working on this in the future they can still use the code in this PR as a start.

Thanks for your contribution @ptmt! Hope you'll keep contributing to React Native.


Potential compiler segfault in lookup.c

https://github.com/ponylang/ponyc/blob/58134d152503147e7980404990252136dd7b6cc6/src/libponyc/type/lookup.c#L56-L68
This code is a bit bogus. If opt can be NULL, the declaration typecheck_t* t = &opt->check; could crash the compiler. In any case, it looks like the t declaration could be safely moved into the scope of the if-branch, where it is properly guarded against opt == NULL.

Thanks for reporting this one. This should be a straightforward PR for anyone who wants to take it.

I am happy to submit a PR but wanted to not do it since there is a current PR (private types confusing error...) that involves this file, and I was worried that two edits of lookup.c are potentially floating around. If that is unfounded, I am happy to quickly create the PR

The variable t is also used outside of the if scope below:
https://github.com/ponylang/ponyc/blob/58134d152503147e7980404990252136dd7b6cc6/src/libponyc/type/lookup.c#L150-L167
I actually don't know if opt is ever allowed to be NULL here, this function in particular is very liberal when it comes to dereferencing things inside of it (see all the instances of opt->check.errors).
Also, we have several  pony_assert(opt != NULL); spread through the compiler, but it could be that there's some context in which opt can be NULL

I don't think this should be closed.
I think we should remove the opt != NULL and could reasonably add an assert that it isn't null to the function.

I don't think this should be closed.
I think we should remove the opt != NULL and could reasonably add an assert that it isn't null to the function.

I tried exactly this:
https://github.com/ponylang/ponyc/commit/527864dd4e73d34df7d85cf1bb5e71ac5bafc020#diff-44ccf14c19a6015e168dc16ed55bd0fdcfd0bf88351427bbbe76449a9e257495L56-L64]
It did compile in Release mode but failed on all platforms in Debug mode with an assertion error.

We discussed this during sync - the next step would be to use a debugger like lldb to catch the assert fail and figure out what code path is calling a NULL opt, then fix it to not do that.

Here is the backtrace:
C:\ponyc\src\libponyc\type\lookup.c:60: lookup_nominal: Assertion `opt != NULL` failed.

Backtrace:
  (ponyint_assert_fail) [00007FF61CCBD5A6]
  (lookup_nominal) [00007FF61CC3AD7A]
  (lookup_base) [00007FF61CC3A950]
  (lookup_try) [00007FF61CC3A7CA]
  (add_special) [00007FF61CC4C4D0]
  (add_nominal) [00007FF61CC4D413]
  (add_type) [00007FF61CC4A279]
  (reachable_method) [00007FF61CC4A351]
  (reach) [00007FF61CC49943]
  (genexe) [00007FF61CC66064]
  (codegen) [00007FF61CBDE8E7]
  (generate_passes) [00007FF61CB6F37C]
  (compile_package) [00007FF61CB633C1]
  (main) [00007FF61CB63714]
  (__scrt_common_main_seh) [00007FF61F32DD48]
  (BaseThreadInitThunk) [00007FFAD69D7034]
  (RtlUserThreadStart) [00007FFAD7DE2651]

https://github.com/ponylang/ponyc/blob/932d5cd19e09411d07092112a886be80a12cfbc2/src/libponyc/reach/reach.c#L563-L567
I think the newly added assertion is tripped by this call (add_special) in reach.c where opt is set NULL!
But if this call with opt NULL makes it way into lookup_nominal, why does it not currently crash the compiler when NULL is dereferend in the typecheck_t* t = &opt->check; line?
https://github.com/ponylang/ponyc/blob/58134d152503147e7980404990252136dd7b6cc6/src/libponyc/type/lookup.c#L56-L68

@stefandd - We already have the opt here in this scope (it's the last parameter received by add_special) so in my opinion there's no reason to pass NULL to lookup_try - we should pass the real opt.

Unfortunately this definitely does seem more involved. In #4191, I tried first to only implement the suggestion (provide opt as parameter to the lookup_try call in add_special), but this failed to build, and then I tried to replace the other lookup_try(NULL, NULL,.. and lookup(NULL, NULL,.. calls in that module wherever opt was actually in the function scope, and this now still does not build.
Unsure how to proceed with this.

I tried first to only implement the suggestion (provide opt as parameter to the lookup_try call in add_special), but this failed to build

Can you give more detail - maybe a compiler error?

It fails with the newly inserted assertion opt!=NULL being tripped. There is one lookup(NULL, NULL, t->ast, name) call left in reach.c, in add_method_name that could be causing this, but opt isn't in scope there, and I have no debugger access right now.

To make it work, we need to add opt everywhere - if it's not in scope, we need to make sure it is in scope by passing it in.
The compiler was written with the assumption that opt is always non-null, and any code that is supplying null for it needs to be replaced with code that supplies non-null.

@jemc
I did that, replacing the remaining two calls to lookup..(NULL, ...) by bringing opt into scope. Now the compiler actually crashes because lookup_nominal in genmatch.c returns NULL in eq_param_type, crashing the AST_GET_CHILDREN line.
static ast_t* eq_param_type(compile_t* c, ast_t* pattern)
{
  ast_t* pattern_type = deferred_reify(c->frame->reify, ast_type(pattern),
    c->opt);
  deferred_reification_t* fun = lookup(c->opt, pattern, pattern_type, c->str_eq);

  AST_GET_CHILDREN(fun->ast, cap, id, typeparams, params, result, partial);

The cause for the returned NULL is in lookup_nominal
https://github.com/ponylang/ponyc/blame/24cf1efd9eab28d6ee2dbe8001919523c5a4864b/src/libponyc/type/lookup.c#L67-L77
Also, I know too little about the compiler to understand why ast_error(opt->check.errors, from, "can't lookup fields or methods "  "on private types from other packages"); does not generate an error message at all ???
Anyhow, for me it currently looks that certain checks in lookup_nominal are suppressed by passing NULL for opt into the function, and that the attempt to move into scope opt everywhere is breaking the assumption by whoever wrote these parts of the compiler, that they can turn off certain checks by calling lookup functions with NULL.

why ast_error does not generate an error message at all ??? No textual output is generated

The ast_error appends an error into the error list held at opt->check.errors. It does not halt the compiler immediately nor print an error immediately - it simply adds an error to be printed at the end.

Overall, for me it currently looks as if certain checks in lookup_nominal are suppressed by passing NULL for opt into the function, and that the attempt to move into scope opt everywhere is breaking the assumption by whoever wrote these parts of the compiler, that they can turn off certain checks by calling lookup functions with NULL.

I think your assessment is correct, but this was the wrong approach by whomever wrote this code - they should have probably passed in an extra flag argument called bool suppress_errors or something like that. They definitely shouldn't have made the opt argument nullable, because it's used for so much more than just accumulating errors, and because it's not meant to be nullable anywhere else.

It seems then that resolving this is a bit of a rewrite of certain parts of the compiler which is a task better left to one of the core developers.
To summarize the situation:

in lookup_nominal (code of the first post): if an assert(opt != NULL) is inserted it is tripped by quite a few calls of the style lookup..(NULL, NULL, ..) indicating that the  typecheck_t* t = &opt->check; accesses invalid memory. Despite that it does however currently not lead to any reported crashes. There are various (opt != NULL) guards in that function that were inserted to allow such lookup..(NULL, NULL, ..) calls.
a remedy seemed to be to remove all use of lookup..(NULL, NULL, ..) AND to remove the (opt != NULL) guards in lookup_nominal which however leads to more trouble (crashes) since the function was apparently written with such use in mind.

Please advise on how to proceed

My suggested approach is still the same as in my previous comment - that the code should be updated in whatever was is necessary to make it no longer assume that opt can sometimes be null - probably by passing in a new flag argument indicating whether errors should be suppressed or not (rather than treating a null opt as an indication to suppress errors).

Ok, I can do this but would have to assume that all guarding (opt != NULL) in lookup_nominal were meant to serve as an error suppression flag -- safe assumption?


Make review.vote field required

Current coverage is 80.16%

Merging #164 into master will not affect coverage as of 82925a6

@@            master    #164   diff @@
======================================
  Files           40      40
  Stmts         1235    1235
  Branches         0       0
  Methods          0       0
======================================
  Hit            990     990
  Partial          0       0
  Missed         245     245

Review entire Coverage Diff as of 82925a6

Powered by Codecov. Updated on successful CI builds.


Error in NER KB config

https://github.com/deepmipt/DeepPavlov/blob/0214bd4ca2a676057d287a5011a20fb7ee2ddaeb/deeppavlov/configs/ner/ner_kb_rus.json#L2-L5

Also, the first run of
from deeppavlov import configs, evaluate_model

evaluate_model(configs.kbqa.kbqa_rus, download=True)

results in RuntimeError:
2019-06-18 21:05:29.52 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/templates.pickle download because of matching hashes
2019-06-18 21:05:34.248 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/wikidata_rus.tar.gz download because of matching hashes
2019-06-18 21:05:47.430 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/embeddings/ft_native_300_ru_wiki_lenta_nltk_word_tokenize/ft_native_300_ru_wiki_lenta_nltk_word_tokenize.bin download because of matching hashes
2019-06-18 21:05:47.444 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/wiki_properties_id_to_name.pickle download because of matching hashes
2019-06-18 21:05:47.950 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/inverted_index.pickle download because of matching hashes
2019-06-18 21:05:50.390 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/embeddings/lenta_lower_100.bin download because of matching hashes
2019-06-18 21:05:50.428 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/kbqa_mix_lowercase.tar.gz download because of matching hashes
2019-06-18 21:05:50.444 INFO in 'deeppavlov.core.data.utils'['utils'] at line 63: Downloading from http://files.deeppavlov.ai/kbqa/test_set_with_answers.txt to F:\conda\.deeppavlov\downloads\wikidata_rus\test_set_with_answers.txt
6.94kB [00:00, 6.87MB/s]
2019-06-18 21:05:50.453 INFO in 'deeppavlov.core.data.utils'['utils'] at line 201: Extracting F:\conda\.deeppavlov\downloads\wikidata_rus\test_set_with_answers.txt archive into F:\conda\.deeppavlov\downloads\wikidata_rus

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-2-77ea99616bd6> in <module>
----> 1 evaluate_model(configs.kbqa.kbqa_rus, download=True)

F:\conda\envs\dp_kbqa\lib\site-packages\deeppavlov-0.3.1-py3.6.egg\deeppavlov\__init__.py in evaluate_model(config, download, recursive)
     33
     34     def evaluate_model(config: [str, Path, dict], download: bool = False, recursive: bool = False) -> dict:
---> 35         return train_evaluate_model_from_config(config, to_train=False, download=download, recursive=recursive)
     36
     37 except ImportError:

F:\conda\envs\dp_kbqa\lib\site-packages\deeppavlov-0.3.1-py3.6.egg\deeppavlov\core\commands\train.py in train_evaluate_model_from_config(config, iterator, to_train, evaluation_targets, to_validate, download, start_epoch_num, recursive)
     90     if iterator is None:
     91         try:
---> 92             data = read_data_by_config(config)
     93         except ConfigError as e:
     94             to_train = False

F:\conda\envs\dp_kbqa\lib\site-packages\deeppavlov-0.3.1-py3.6.egg\deeppavlov\core\commands\train.py in read_data_by_config(config)
     56         data_path = expand_path(data_path)
     57
---> 58     return reader.read(data_path, **reader_config)
     59
     60

F:\conda\envs\dp_kbqa\lib\site-packages\deeppavlov-0.3.1-py3.6.egg\deeppavlov\dataset_readers\kbqa_reader.py in read(self, data_path)
     17             url = 'http://files.deeppavlov.ai/kbqa/test_set_with_answers.txt'
     18             data_path.mkdir(exist_ok=True, parents=True)
---> 19             download_decompress(url, data_path)
     20         dataset = {}
     21

F:\conda\envs\dp_kbqa\lib\site-packages\deeppavlov-0.3.1-py3.6.egg\deeppavlov\core\data\utils.py in download_decompress(url, download_path, extract_paths)
    210                 zip_ref.extractall(extracted_path)
    211         else:
--> 212             raise RuntimeError(f'Trying to extract an unknown type of archive {file_name}')
    213
    214         if not cache_dir:

RuntimeError: Trying to extract an unknown type of archive test_set_with_answers.txt

The second run is OK, when test_set_with_answers.txt file is already downloaded.
I'm posting this error here, since these issues were introduced in the same PR #734.

Resolved in #886


New search terms for various presets

With the new choose-then-draw method of adding features, it is more important than ever before to have proficient search terms for whatever people come up with typing in.  This pull request adds missing search terms to presets that have been annoyingly difficult for me to find in the past.

@BjornRasmussen Awesome, thanks 👍


Compliance Report D | Output table not recognizing pasted number values from Excel |2|

Issue:
The output table in Schedule D is not recognizing some number values pasted from an excel workbook. The user can paste the values, and they show up in the corresponding cells, however, they are not being included in the totals at the bottom of the output table.
Example:

Screenshot attached showing numbers pasted from an example excel workbook (also attached) not being recognized in the calculation of the total value at the bottom of the output table.

https://trello.com/c/iaxHlFiH/1740-compliance-report-d-output-table-not-recognizing-pasted-number-values-from-excel-2

resolved in sprint ursa major


stubgen: support cross compilation of generated modules

Hi there,
One way of using ctypes stubgen involves building and running this OCaml program:
let () =
  print_endline "#include <mpg123.h>";
  Cstubs_structs.write_c Format.std_formatter
    (module Mpg123_c_type_descriptions.Types)
;;

that outputs a C program like this:
#include <mpg123.h>
#include <stdio.h>
#include <stddef.h>
#include "ctypes_cstubs_internals.h"

int main(void)
{

  puts("include Ctypes");
  puts("let lift x = x");
  puts("open Ctypes_static");
  puts("");
  puts("let rec field : type t a. t typ -> string -> a typ -> (a, t) field =");
  puts("  fun s fname ftype -> match s, fname with");
  puts("  | Struct ({ tag = \"`Id3v2\"} as s'), \"comment\" ->");
  ctypes_printf("    let f = {ftype; fname; foffset = %zu} in \n",
               offsetof(mpg123_id3v2, comment));
  puts("    (s'.fields <- BoxedField f :: s'.fields; f)");
  puts("  | Struct ({ tag = \"`Id3v2\"} as s'), \"genre\" ->");
  ctypes_printf("    let f = {ftype; fname; foffset = %zu} in \n",
               offsetof(mpg123_id3v2, genre));
  puts("    (s'.fields <- BoxedField f :: s'.fields; f)");
  puts("  | Struct ({ tag = \"`Id3v2\"} as s'), \"year\" ->");
  ctypes_printf("    let f = {ftype; fname; foffset = %zu} in \n",
               offsetof(mpg123_id3v2, year));
  puts("    (s'.fields <- BoxedField f :: s'.fields; f)");
  puts("  | Struct ({ tag = \"`Id3v2\"} as s'), \"album\" ->");
  ctypes_printf("    let f = {ftype; fname; foffset = %zu} in \n",
               offsetof(mpg123_id3v2, album));
  puts("    (s'.fields <- BoxedField f :: s'.fields; f)");
  puts("  | Struct ({ tag = \"`Id3v2\"} as s'), \"artist\" ->");
  ctypes_printf("    let f = {ftype; fname; foffset = %zu} in \n",
               offsetof(mpg123_id3v2, artist));
...
  return 0;
}

which, when built and run outputs an ocaml module that should be built into your project to use the C stubs.
This doesn't work for cross compilation.  I notice @whitequark did some sweet hack to get ctypes itself to cross compile https://github.com/ocamllabs/ocaml-ctypes/pull/383
Would be nice to do something like this for ctypes users as well.  I would like to add this to dune's upcoming native ctypes rules generation support https://github.com/ocaml/dune/pull/3905
Any thoughts on proceeding?

To be clear I mean hack in the best possible meaning of the term :)
It's true dune does do something like this to discover definitions and values from compiled C code but it is not apparently easily adapted to letting us pluck that substantial OCaml module out of a compiled binary.  Also  Cstubs_structs.write_c_for_cross_compilation seems like a better home for it.

This would be nice to have, and Cstubs_structs.write_c_for_cross_compilation seems like a reasonable place to put it.
One question is whether to switch the whole process over to use @whitequark's approach or maintain two distinct flows for type stubs generation.


File input doesn't get bound on nested models

Description
When binding nested models, file inputs get ignored if they are the only input on given submodel (works fine on root model).
Modified HelloMvc from cli-samples: https://github.com/Kukkimonsuta/nested-file-binding
Setup
public class RootModel
{
    public ChildModel Child { get; set; }
}

public class ChildModel
{
    public string Text { get; set; }
    public IFormFile File { get; set; }
}

<!-- form1 -->
<input type='file' name='child.file' />

<!-- form2 -->
<input type='file' name='child.file' />
<input type='text' name='child.text' />

Expected behaviour

form1 binds RootModel.Child.File creating instance of both RootModel and ChildModel
form2 binds RootModel.Child.File and RootModel.Child.Text creating instance of both RootModel and ChildModel

Actual behaviour

form1 will create instance of RootModel and ignore ChildModel leaving it null
form2 works as expected

This is expected because form1 does not contain value provider data for the ChildModel. Either add an <input type="hidden" name="child.irrelevant" value="irrelevant"/> element to the form or remove the Text property from ChildModel. (Not positive the second option will work but it should.)

or remove the Text property from ChildModel. (Not positive the second option will work but it should.)

I don't think this will have an effect

Thanks for suggestions, I've tried both solutions, but they don't seem work unless I pollute both model and request with extra data:

adding hidden input with name that doesn't exist in model (for instance child.irrelevant) doesn't force model binder to create instance of ChildModel and bind File
removing Text from ChildModel makes it impossible to bind the model (even when other keys starting with child. exist)

@dougbu @rynowak any further thoughts on how to achieve this scenario? Or is it deliberately not supported for some reason?

I have some ideas here to improve this area, but it needs a bigger discussion.

@rynowak ok I'll park on your plate for v1.0.0 and when you have a chance the three of us can get together to discuss.

We are not fixing this for v1.0.0 but we will take another look in the future.

Pretty annoiyng thing. My model looks like this now to make it work if anyone has that issue it may be helpful. You have to send some extra value to make file bind to the model. If you don't have to bind it to the model it is visible in Request.Form.Files. But since I want my view models having IFormFile field this is example how I workaround this:
`public class SomeVM
{
public GalleryVM Gallery { get; set; }
}
public class GalleryVM
{
public IFormFile UploadingImage { get; set; }
public bool FormFileHack { get; set; }
//gallery properties...
}
//the view .cshtml

`

@rynowak any thoughts on the complexity of fixing this? Does it involve rewriting model binding?

Closing because there are no plans to implement this.


Tensorflow Dependency Error

During pip install I'm getting the following error:
ERROR: Could not find a version that satisfies the requirement tensorflow<2.0,>=1.11 (from hmni) (from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1, 2.3.0rc2, 2.3.0)
ERROR: No matching distribution found for tensorflow<2.0,>=1.11 (from hmni)

OS details:
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

Which version of Python are you using? Please see TensorFlow's system requirements.

Which version of tensorflow do you require?
I'm using python 3.8.2

HMNI requires TensorFlow 1.x to serve models, some important functions have become deprecated as of TF 2.x and later.

Oh, it seems pip installs tensorflow 2.x by default and doesn't offer 1.x anymore (?)
$ python3 -m pip install tensorflow==
ERROR: Could not find a version that satisfies the requirement tensorflow== (from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1, 2.3.0rc2, 2.3.0)
ERROR: No matching distribution found for tensorflow==

Related issue: Unable to install older version of tensorflow in  #Python3.8.2
I will be adding support for TensorFlow 2.0+ in future releases.

Resolved as of v0.1.6: Alpha Release

Added TensorFlow 2 compatibility


[🐞] Symbols are replaced with full file URLs in dev mode after useNavigate then modifying the page

Which component is affected?
Qwik Rollup / Vite plugin
Describe the bug
In dev mode, if you navigate using useNavigate or Link and then edit the page, Vite will automatically reload the page and then all symbols will be specified as full file URLs. (/home/user/.../... etc)
On Linux these will still load probably because the url structure is /home/xxx/..., I assume it's the same for OSX, so this issue will go unnoticed but on Windows url structure is file:// and especially causes an error when the qwik loader attempts to load it.
This is the cause of this issue: https://github.com/BuilderIO/qwik/issues/4665
Also for more details, in the SPA shim for example I get the symbol/chunk for the SPA init script:
const [symbol, chunk] = getPlatform().chunkForSymbol(init.getSymbol(), null)!;

The value of chunk here will also be a full file URL just like all the others on the page.
Reproduction
https://github.com/jordanw66/issue-qwik-file-urls
Steps to reproduce

Clone the reproduction.
Run it in dev mode.
Follow the instructions.
Notice the issue.

System Info
N/A

Additional Information
No response

Might be related to:
https://github.com/BuilderIO/qwik/issues/4665

You are amazing @jordanw66 saved me hours trying to figure out why windows fails! gonna fix + e2e test


Added code for issue #3185

Have you read the Contributing Guidelines on Pull Requests?
Yes.
Description
Added code for counting divisors using sieve of Eratosthenes.
Added link to README.md in the C-Plus-Plus folder.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#3185

@ankitaggarwal23 @HarshCasper  I request you to review my pull request.

Heyy,
@HarshCasper I just realised that my code is not visible on the NeoAlgo website. I made a typo in the readme file. Instead of writing (math/counting_divisors_using_sieve_of_eratosthenes.cpp), I have written (maths/counting_divisors_using_sieve_of_eratosthenes.cpp).The pull request got merged already. What should I do?

@apoorva-s1301 Don't worry just update in readme and open a new pr linking this merged PR and we will update.


Add full syncs and bidirectional full syncs to the documentation

I didn't add the whole document because some stuff refers to partition healing which hasn't been introduced yet and is more of a motivation to implement bidir full syncs, than an explanation.

:+1:


The window does not close on wayland

When testing the example Noise.jl on wayland the window does not close after pressing the close button.
The function noise() however is terminates.
System
[cc649173] MiniFB v0.1.1
Julia Version 1.8.0
Commit 5544a0fab76 (2022-08-17 13:38 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 16 × AMD Ryzen 7 5700X 8-Core Processor
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, znver3)
Threads: 1 on 16 virtual cores
wayland 1.21.0-1

Would be good to get a mwe using C, to check if the issue is in the underlying library, or in the julia binding.


file size limit exemption request pybullet

I just started hitting a file size limit when uploading pybullet version (after 3 years).
This is a python module for physics simulation and reinforcement learning for robotics. It contains some example data and pretrained Tensorflow policies and this exceeds 60Mb.
Link to PyPi: https://pypi.org/project/pybullet/
Current size of release is around 77Mb, so I had to remove some assets.
Would it be possible to extend it to 100Mb?
Only PyPi needs to be updated, not using Test PyPi)
(I use twine to upload to pypi)
index-servers =
    pypi

See also the pybullet quickstart guide for more info.
Thank you for the great project!

The upload limit has been set to 100MB on pypi.org.


biorand crashing when putting path to Resident Evil folder

When I put the path in biorand to Resident Evil 2 Sourcenext exe it freeze and after few seconds it crashed. When I try to do the same but for Resident Evil 1 then it works fine. I also tried reinstall the game and with/without 1.10 patch and with/without rebirth dll.
My path to RE2 is: C:\Program Files (x86)\CAPCOM\BIOHAZARD 2 PC\bio2.exe
My path to RE1 is: C:\Program Files (x86)\BIOHAZARD\Biohazard.exe
Before version 2.0.1 and 2.0 biorand worked perfectly,

How did it crash? Was it possible to wait a bit longer for it to process the directory?

Like in the image I choose bio2.exe file and when I confirm it it freezes a bit and then it closes the app. No error and no new files in directory.

Can you try editing %AppData%\biorand\settings.json:
And change the value of gamePath2 to your RE2 path. This will bypass the settings panel, but can you tell me if you can still generate a rando for RE2?

I have edited but didn't gave any effect. Application gives an error about path and when I check the settings.json it has changed my changes back to null. I even tried edit again and put the settings,json in Read-only but nothing changed.

Ok, I found the solution. Based on putting RE1 into biorand (which works for me) I found out that the path written in .json file is written differently. So I tried again and put the path to RE2 like to RE1 in the settings.json.

It worked but I got a new issue when I generate the seed.

What is in the data folder of your RE2 install? I am not sure why that exists if the pl0 and pl1 folders are in the root.

Before I pasted all Biohazard 2 game folders the data folder was from the biorand zip file that I downloaded directly from your github.

Before I pasted all Biohazard 2 game folders the data folder was from the biorand zip file that I downloaded directly from your github.

Oh please don't mix biorand with your game installs. Keep them well separate. Delete your data directory in the RE2 install.

I understand that I shouldn't do that but in my situation that's the solution if I want biorand to work correctly. The weird is that app wants the game folders and the folders with characters/music from another RE's which was together with the Rando files.

It doesn't you just extract biorand to anywhere else like your desktop. You don't need to put the biorand files in your RE2 install directory. To fix this, you will need to remove that data directory, or revert the RE2 install back to its original state.

 Whole issue from the beginning was because I put biorand in game directory when I was not supposed to do that.  It should certainly not crash, so I need to fix that.

I now catch exceptions to avoid crash. It also ignores any data directory not containing RDTs which might help.


Patch 1

Why:
Closes [issue link]
What's being changed:

Check off the following:

[ ] For workflow changes, I have verified the Actions workflows function as expected.
[ ] For content changes, I have reviewed the style guide.

Necessário revisão de aprovação.

1-tbd.yml 😇


feat: added a way to exclude objects from saving in history

This PR takes advantage of excludeFromExport property to exclude an object to be saved in History.
Previously, if we set that property to true, then even when that object is added/modified then still history got saved making redundant same state JSON in undo and redo stack.
So making bug a feature in this release, cheer!!

@alimozdemir please review the branch if possible/available


feat: format injected languages

New injected formatter that will find injected languages using treesitter and format those code snippets with the configured formatters. To use:
require("conform").setup({
  formatters_by_ft = {
    markdown = { "injected" },
  }
})

was actually thinking to PR support for cbformat, but his is actually way nicer. Thanks for this one!


Add host/group scrape blocks

This PR adds two variables, similar to promtail_config_scrape_configs, but for using at host and group level.
Use case scenario:
Use promtail_config_scrape_configs at group all - ie systemd scraping and other generic stuff you can pull from all machines
Use promtail_config_scrape_configs_group in ansible groups (ie db clusters, app logs, etc)
And same for _host should someone have the need.
Does nothing by default. Doesn't break existing installs.

Thank you for submitting the PR. I am a bit hesitant do add more parameters to the role. To me the parameters seem to solve a specific use-case for your environment, which in my opinion should be solved outside of the role
Have you considered using ansible list concat to achieve the same result? Quickly tested the following:
- hosts: all
  become: true
  roles:
    - role: patrickjahns.promtail
      vars:
        promtail_config_scrape_configs: '{{ global_promtail_config_scrape_configs|default([]) + group_promtail_config_scrape_configs|default([]) + host_promtail_config_scrape_configs|default([]) }}'

It essentially achieves the same result and provides you with more flexibility to combine/mix your scrape configs as you desire

Yes, it's totally possible, i just thought that this scenario is pretty common, well, if no then no.

Closing as this PR is quite old and feature was not implemented


Add plugin attributes at the page and collection levels

Currently the plugins can only be applied at the site level. This means that the plugin will be executed on every page.
Feature: Use the same plugins attribute design to limit specific plugin execution.
Implementation Step

[ ] Create Check on Page & Collection for the plugins attribute

[ ] If plugins, create a NEW plugin_manager and register the provided plugins.
[ ] Otherwise use the plugin manager from __init__

I think with a minor refactor that includes creating a composed PluginManager Class for all the items then we can include the functionality for things like register_plugin at w/e cls level.

[Update]
Page and collection objects deepcopy the plugin manager and then add/remove plugins based on if present in exclude_plugins or plugins at that level.
I need to check if render_collection and render_content pull the plugin manager from the site or the page/collection. But this effectively resolves this issue.

Verified that for pages the page version of the plugin-manager is used.
https://github.com/render-engine/render-engine/blob/e5550a36663b6ef0b61c6960638a8a34e8612864/src/render_engine/site.py#L190-L194
Collection level plugins have not been added to site.render.


Make liquibaseorausertable compatible with Liquibase 4.23.0+

Liquibase 4.23.0 changed the ChangeLogHistoryService, see the Breaking Changes section of https://github.com/liquibase/liquibase/releases/tag/v4.23.0 and https://github.com/liquibase/liquibase/pull/4310
Therefore liquibaseorausertable has to be adapted to make it work with Liquibase 4.23.0.
By the way: Thank you very much for providing this project! 👍

hi @PascalSchumacher thank you for the tip. I'll have a look at what it would mean to update and add some kind of compatiblity with the new version.
If the changes required are too big, I'll most likely will not update the project, as currently I'm fortunate enough to not interact with an Oracle db. (Or maybe I will need to find a smarter way to rewrite the queries, but unfortunately the USER_ and ALL_ tables are quite differents, so it's not only a search and replace ;( )


Lunary LLM call outputs not visible.

We haven't deployed any new code changes to our dev, prod environments. All LLM calls are showing up in traces and in logs, but the logs are greyed out (as opposed to green when working fine). We use integration of lunary with LCEL.
Upon investigating the parent trace of the greyed out log, we can see that that the model row has a cross on it.
Other details: timing information, costing information and token count is not available in the logs section.

Hi, it seems there's a problem from the package we use for tokenization (tiktoken) when the token usage is not reported in the events (which is your case). When the process is running for too long, there's a WASM error. I will open an issue on their repo, but in the meantime I've modified the ingestion code so that it'll still ingest the output. But for now everything seems to work. We will closely monitor this


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit 26381e2:
:clock10: Pending: waiting for processors (12 builds ahead of you)
:warning: Docs Build is busy, currently there are 12 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 26381e2:
:clock10: Full build: the average full build time is 6 min(s) 5 sec(s), this is based on the last 492 build(s) for this repository.

Docs Build status updates of commit 26381e2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


cp.intvar makes unbound variables?

In the following example there are four variables 0 <= b[i] <= 1. Why is there only one solution instead of 16?

Why does cp.intvar not make a domain condition in each variable?

import cpmpy as cp
b = cp.intvar(0, 1, shape=5, name="b")  # five binary variables
m = cp.Model(b[0] == 1)
print("Nr of solutions:", m.solveAll() ) #Why Nr of solutions is only 1 ?

version '0.9.16'

Hi João,
Thanks for reaching out.
In CPMpy a variable is not associated with a model up on creation.
So, integer values b[1] to b[4] are not "known" to the model and indeed not to the solver.
If you print the model, you will get the following:
print(m)
>>Constraints:
        b[0] == 1
    Objective: None

You can force the model to take into account all of the variables you created by putting them in a constraint which will always be True, in your case you could use something like cp.sum(b) >= 0.
This way, the variables are known to the solver, but unconstrained.
import cpmpy as cp
b = cp.intvar(0, 1, shape=5, name="b")  # five binary variables
m = cp.Model(b[0] == 1)
m += cp.sum(b) >= 0
print("Nr of solutions:", m.solveAll() ) # this will result in 16 solutions

I hope this cleared things up :)

Thank you.


Windows.Security.Cryptography.Core.CryptographicKey reference not found

Hi,
We are facing problem with
this method: public static global::Windows.Security.Cryptography.Core.CryptographicKey Load(string pubKeyContent);
The problem is as it returns cryptographic key from package  Windows.Security.Cryptography.Core, This package is not available in .net45 assembly. Can you please give us solution ASAP. As we need to up this functionality on production.

Hi @monikapingale , are you sure you need WinRT version if you target .net45?
Probably main version: https://github.com/dvsekhvalnov/jose-jwt will be what are you looking for?


Cannot add new tasks or rename existing tasks

Bit of a strange one...I have a task defined in grunt/webpack.js but when I try to run grunt webpack I get:
$ grunt webpack
Warning: Task "webpack" not found. Use --force to continue.
Error: Task "webpack" not found.
    at Task.run (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/util/task.js:172:28)
    at /home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt.js:152:39
    at Array.forEach (native)
    at Object.grunt.tasks (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt.js:152:9)
    at Object.module.exports [as cli] (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt/cli.js:27:9)
    at Object.<anonymous> (/usr/local/share/.config/yarn/global/node_modules/grunt-cli/bin/grunt:44:20)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:383:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:496:3

Aborted due to warnings.

I have a number of other tasks in the same directory e.g grunt/uglify.js, which runs just fine:
$ grunt uglify
Running "uglify:dist" (uglify) task
>> 1 file created 4.56 kB → 1.57 kB

Done.

To try and debug this, I renamed grunt/uglify.js to grunt/uglif.js and it stopped working...
$ grunt uglif
Warning: Task "uglif" not found. Use --force to continue.
Error: Task "uglif" not found.
    at Task.run (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/util/task.js:172:28)
    at /home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt.js:152:39
    at Array.forEach (native)
    at Object.grunt.tasks (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt.js:152:9)
    at Object.module.exports [as cli] (/home/andy/projects/jquery-grouprequired/node_modules/grunt/lib/grunt/cli.js:27:9)
    at Object.<anonymous> (/usr/local/share/.config/yarn/global/node_modules/grunt-cli/bin/grunt:44:20)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:383:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:496:3

Aborted due to warnings.

The output of grunt --config-debug is:
CONFIG:
==============================
{
  "aliases": {
    "default": [
      "jshint:src",
      "jscs:src",
      "dist",
      "readme"
    ],
    "dist": [
      "includes:dist",
      "uglify:dist",
      "jshint:dist",
      "jscs:dist"
    ],
    "test": [
      "browserify",
      "webpack",
      "qunit"
    ]
  },
  "browserify": {
    "build": {
      "src": "src/test/unit/browserify.js",
      "dest": "test/unit/browserify.js"
    }
  },
  "includes": {
    "dist": {
      "options": {
        "includeRegexp": {},
        "banner": "/**\n * <%= pkg.name %> v<%= pkg.version %>\n *\n * @author <%= pkg.author %>\n * @license <%= pkg.license %>\n */\n"
      },
      "src": "<%= files.boilerplate %>",
      "dest": "<%= files.main %>"
    }
  },
  "jscs": {
    "options": {
      "config": ".jscsrc"
    },
    "src": {
      "src": "src/**/*.js"
    },
    "dist": {
      "src": "<%= files.main %>"
    },
    "grunt": {
      "src": "Gruntfile.js"
    }
  },
  "jshint": {
    "options": {
      "jshintrc": ".jshintrc"
    },
    "src": {
      "src": "src/**/*.js"
    },
    "dist": {
      "src": "<%= files.main %>"
    },
    "grunt": {
      "options": {
        "node": true
      },
      "src": "Gruntfile.js"
    }
  },
  "qunit": {
    "dist": {
      "options": {
        "page": {
          "viewportSize": {
            "height": 966
          }
        }
      },
      "src": "test/index.html"
    }
  },
  "readme": {},
  "uglify": {
    "dist": {
      "options": {
        "sourceMap": false,
        "report": "gzip",
        "preserveComments": {}
      },
      "src": "<%= files.main %>",
      "dest": "<%= files.min %>"
    }
  },
  "watch": {
    "js": {
      "files": [
        "src/**/*.js"
      ],
      "tasks": [
        "jshint:dist",
        "includes:dist",
        "uglify:dist"
      ]
    }
  },
  "webpack": {
    "blah": {
      "entry": "./src/test/unit/webpack.js",
      "mode": "development",
      "output": {
        "path": "/home/andy/projects/jquery-grouprequired/test/unit",
        "filename": "webpack.js"
      }
    }
  }
}

ALIASES:
==============================
default ["jshint:src","jscs:src","dist","readme"]
dist ["includes:dist","uglify:dist","jshint:dist","jscs:dist"]
test ["browserify","webpack","qunit"]

So the webpack task is clearly being picked up when the config is generated. Any idea what's going on here? My Travis CI builds are failing with the same issue so I think that rules out any quirks from my machine.

Closing this because it was caused by user error. I hadn't included the grunt-webpack module in my package.json and forgot that tasks have to match the names of the grunt modules, hence grunt uglif not working!


Querying remote for config...Failed

Hello,
I am trying to use gvfs to clone a plastic SCM repo. I have already enabled gitserver function on my plastic SCM server, and git clone http://myserver/repo is ok.
But if I use gvfs to clone this repo, it shows the following error message: Querying remote for config...Failed.
I have checking the following:
a .gitattributes file on my repo with content * -text
telnet myserver 9000 is working
disabled selinux on my server
Would anyone can figure it out?
Thank you very much.
$ gvfs clone http://plastic_test:8001/default
Clone parameters:
Repo URL:     http://plastic_test:8001/default
Branch:       Default
Cache Server: Default
Local Cache:  C:.gvfsCache
Destination:  C:\Users\wxtan\test3\default
Authenticating...Succeeded
Querying remote for config...Failed
Unable to query /gvfs/config
Server returned error code 500 (InternalServerError). Original error message from server:

VFS for Git relies on a custom protocol. I don't think Plastic SCM supports those API extensions, so I would expect this to fail.
If you're interested in trying VFS for Git, you can push the repository to Azure DevOps, which does support the protocol.

I believe this question is answered, so I'm closing out the issue.


explore ideas to improve the inlining cache

This is a note to investigate some ideas we discussed in person.
We want to explore whether we can share entries in the cache. For example, we talked about only using a subset of the parameter type-masks as keys, if we know that some parameters are more likely to make a difference than others (for example, the []= implementation changes a lot based on the type of the index key, but doesn't care about the value being set).
We also talked about measuring how many inlining entries look the same, regardless of the type-mask of some arguments to measure the opportunities we have and whether some heuristics make more sense than others.

Looking into a large app I noticed that the cache sometimes gets really big, with >1K entries for a single element.
I also noticed that in those cases, it's very common though to have every inlining decision be the same (either all yes, or all no). Some ideas worth trying are:

avoid specializing if the unoptimized function is small enough already (typical all-yes scenario)
set a limit (e.g. 2 * argument count) on the number of entries in the cache for an element. If the size grows beyond that, we can try a more compact representation. One simple compression would be:

if every entry so far is a "yes", replace the entire list with a "always" (that returns the unoptimized code)
otherwise, remove all the "no" entries, and append a "never" entry at the end of the list. So that we continue to say "yes" in the cases we already determined that was our desired outcome, but we say "no" for everything else.


cmd/link: -pluginpath seems to no longer work with go1.13

What version of Go are you using (go version)?

$ go version
go version go1.13 linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/enikolov/.cache/go-build"
GOENV="/home/enikolov/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY="bitbucket.org/unchain/*"
GONOSUMDB="bitbucket.org/unchain/*"
GOOS="linux"
GOPATH="/home/enikolov/go"
GOPRIVATE="bitbucket.org/unchain/*"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/enikolov/.gvm/gos/go1.13"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/enikolov/.gvm/gos/go1.13/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build411225951=/tmp/go-build -gno-record-gcc-switches"

What did you do?

go build -ldflags "-pluginpath=custom/path" -buildmode=plugin ./path/to/plugin
With go1.13 this seems to no longer map the packages to the custom path.
What did you expect to see?
I have the variable Version in my main package
With go 1.12 after running the strings utility on the produced binary, I would see this somewhere in the output:
custom/path.Version
What did you see instead?
With go1.13 I now see this instead:
path/to/plugin.Version
Could this be related to go modules?

Has this problem be solved? It is inconvenient if we want to reload a plugin.

Am I using it the wrong way or is it still buggy?

What is the use case of -pluginpath? Does it affect the semantics of the program, besides changing some symbol names that can be inspected by tools (nm, objdump, strings)? @crawshaw what use cases did you have in mind? Thanks.


Updated filename wildard

The new wildcard will handle all possible permutations of the heic file extension.
A debug flag has been added to enable the convert binary's Trace or All debug options
Removed duplicate code
Updated the README file

@creimers


🔨 Add ssh-client + update git using debian backports in Docker image

resolves #3337
Description
Adds ssh-client and updates the git version (using backports) to enable using dbt deps with the Docker image, on private GitHub repositories, through SSH
Checklist

[X] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue -- TODO: please help me out, the Docker image changed quite a bit since I last played with it, and I'm not sure how to get it to build locally with the new --build-args
[X] This PR includes tests, or tests are not required/relevant for this PR -- note: the tests run on a different Docker image
[X] I have updated the CHANGELOG.md and added information about my change to the "dbt next" section.

TODO: please help me out, the Docker image changed quite a bit since I last played with it, and I'm not sure how to get it to build locally with the new --build-args

This is a bit outside my wheelhouse... @kwigley any chance you could give a pointer?

@dmateusp this seems totally reasonable, I was able to test locally locally with success and the image size didn't seem to change too much. I'd love to have you test this out as well with our wacky build args before merging.
The build args are specifically meant for the build workflow that is set up, we'd have to move some things around in that process to make these build args a little more reasonable. This is something I'd like to do to make this more accessible.
In the meantime, here is a workaround. BASE_REQUIREMENTS_SRC_PATH can point to any file in docker/requirements, these are 3rd party dependencies of dbt. WHEEL_REQUIREMENTS_SRC_PATH is meant to point file listing paths to the dbt packages, but for this it can be the path to a file that contains the dbt requirement (literally a requirements file with just dbt==0.19.1 in it). DIST_PATH would point to where the python distribution files generated during the build process live, so that they can be copied into the image. This is pointless for testing this out, this can point to any directory. This might throw off the image size a little. Putting this together:
docker build -f docker/Dockerfile . --build-arg  BASE_REQUIREMENTS_SRC_PATH=./docker/requirements/requirements.0.19.1.txt --build-arg WHEEL_REQUIREMENTS_SRC_PATH=./docker/requirements/wheels.txt --build-arg DIST_PATH=docker -t test

where ./docker/requirements/wheels.txt is the new file I created for the dbt requirement (0.19.1 in this case). Let me know how this goes.. this should be easier to do 😅

@kwigley thank you for sharing the steps! I published dmateusp/dbt:0.20.0b1 and was able to confirm that our internal build can pull dependencies now without needing to install sftp and git anymore

Thanks for merging :) @kwigley are you going to push a new version of the Docker image to dockerhub or should I wait for the next dbt version ?

@dmateusp publishing images is so coupled with the automated release process, it may have to wait for the next release. I'll update if this is not the case!


fix: correctly put absolute paths on non-entrypoint files

Current dependencies on/for this PR:

main

PR #10   👈

This comment was auto-generated by Graphite.


The client received a RST (reset) package.

CONNECT www.google.com:443 HTTP/1.1" 499 0 "-" "curl/7.79.1
hi，
I have discovered a problem.
curl https://www.google.com/ -v -x xxxxxx:8880
*   Trying xxxxxx:8880...
* Connected to xxxxxx (xxxxxx) port 8880 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to www.google.com:443
> CONNECT www.google.com:443 HTTP/1.1
> Host: www.google.com:443
> User-Agent: curl/7.79.1
> Proxy-Connection: Keep-Alive
>
* Recv failure: Connection reset by peer
* Received HTTP code 0 from proxy after CONNECT
* CONNECT phase completed!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

nginx err
"CONNECT www.google.com:443 HTTP/1.1" 499 0 "-" "curl/7.79.1"

curl https://www.bing.com/ -v -x xxxxxx:8880 is success

My proxy machine can access Google

nginx conf:

server {
    listen                         8880;
     resolver                       <IP_ADDRESS> ipv6=off;
    # forward proxy for CONNECT requests
    proxy_connect;
    proxy_connect_allow            443 563;
    proxy_connect_connect_timeout  100s;
    proxy_connect_data_timeout     100s;

    # defined by yourself for non-CONNECT requests
    # Example: reverse proxy for non-CONNECT requests
    location / {
        proxy_pass http://$host;
        proxy_set_header Host $host;
    }

	access_log  access_log.log;
    	error_log  error.log;

}

It seemed that your connection may be banned by the intermediate network operator.

The client (curl) reports it received RST tcp package.
The server (proxy_connect module on nginx) reports it received FIN tcp package.

You can extract the tcp packages in both client and server sides to examine the data flow using a tool like tcpdump.

my localhost ip: ip1
proxy ip: ip2
example1:
curl https://www.bing.com/ -v -x ip2:8880  is success
tcpdump log:
15:25:56.653720 IP ip1.54454 > ip2.cddbp-alt: Flags [S], seq<PHONE_NUMBER>, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val<PHONE_NUMBER> ecr 0,sackOK,eol], length 0
15:25:56.770584 IP ip2.cddbp-alt > ip1.54454: Flags [S.], seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 28960, options [mss 1460,sackOK,TS val 177209024 ecr<PHONE_NUMBER>,nop,wscale 7], length 0
15:25:56.770653 IP ip1.54454 > ip2.cddbp-alt: Flags [.], ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209024], length 0
15:25:56.770882 IP ip1.54454 > ip2.cddbp-alt: Flags [P.], seq 1:117, ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209024], length 116
15:25:56.849881 IP ip2.cddbp-alt > ip1.54454: Flags [.], ack 117, win 227, options [nop,nop,TS val 177209137 ecr<PHONE_NUMBER>], length 0
15:25:56.849888 IP ip2.cddbp-alt > ip1.54454: Flags [P.], seq 1:60, ack 117, win 227, options [nop,nop,TS val 177209146 ecr<PHONE_NUMBER>], length 59
15:25:56.849931 IP ip1.54454 > ip2.cddbp-alt: Flags [.], ack 60, win 2057, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209146], length 0
15:25:56.863681 IP ip1.54454 > ip2.cddbp-alt: Flags [P.], seq 117:348, ack 60, win 2057, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209146], length 231
15:25:56.952799 IP ip2.cddbp-alt > ip1.54454: Flags [.], seq 1508:2956, ack 348, win 235, options [nop,nop,TS val 177209236 ecr<PHONE_NUMBER>], length 1448
example2:
curl https://www.google.com/ -v -x ip2:8880 is fail
tcpdump log:
15:24:07.440647 IP ip1.54135 > ip2.cddbp-alt: Flags [S], seq<PHONE_NUMBER>, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val<PHONE_NUMBER> ecr 0,sackOK,eol], length 0
15:24:07.553853 IP ip2.cddbp-alt > ip1.54135: Flags [S.], seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 28960, options [mss 1460,sackOK,TS val 177099811 ecr<PHONE_NUMBER>,nop,wscale 7], length 0
15:24:07.553931 IP ip1.54135 > ip2.cddbp-alt: Flags [.], ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177099811], length 0
15:24:07.554118 IP ip1.54135 > ip2.cddbp-alt: Flags [P.], seq 1:121, ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177099811], length 120
15:24:07.610284 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610290 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610291 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610292 IP ip2.cddbp-alt > ip1.54135: Flags [.], ack 121, win 227, options [nop,nop,TS val 177099922 ecr<PHONE_NUMBER>], length 0
15:24:07.610350 IP ip1.54135 > ip2.cddbp-alt: Flags [R], seq<PHONE_NUMBER>, win 0, length 0
I don't understand the difference between these two. If it's a problem with the client and proxy, why did the first example succeed

It appears that your TCP connection may have been blocked by the intermediate network operator.

The client (curl) reported it received a RST tcp package.
The server (proxy_connect module on nginx) reported it received a FIN tcp package.

You can extract the tcp packages in both client and server sides to examine the data flow using a tool like tcpdump.

My proxy machine can access Google

It seems that the problem occurs between the client and your proxy, not between your proxy and the elgoog server.
The first request from CONNECT tunnel (the CONNECT request) is not encrypted, as following:

CONNECT request from curl

* Connected to xxxxxx (xxxxxx) port 8880 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to www.google.com:443
> CONNECT www.google.com:443 HTTP/1.1
> Host: www.google.com:443
> User-Agent: curl/7.79.1
> Proxy-Connection: Keep-Alive

my localhost ip: ip1
proxy ip: ip2
example1:
curl https://www.bing.com/ -v -x ip2:8880 is success
tcpdump log:
15:25:56.653720 IP ip1.54454 > ip2.cddbp-alt: Flags [S], seq<PHONE_NUMBER>, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val<PHONE_NUMBER> ecr 0,sackOK,eol], length 0
15:25:56.770584 IP ip2.cddbp-alt > ip1.54454: Flags [S.], seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 28960, options [mss 1460,sackOK,TS val 177209024 ecr<PHONE_NUMBER>,nop,wscale 7], length 0
15:25:56.770653 IP ip1.54454 > ip2.cddbp-alt: Flags [.], ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209024], length 0
15:25:56.770882 IP ip1.54454 > ip2.cddbp-alt: Flags [P.], seq 1:117, ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209024], length 116
15:25:56.849881 IP ip2.cddbp-alt > ip1.54454: Flags [.], ack 117, win 227, options [nop,nop,TS val 177209137 ecr<PHONE_NUMBER>], length 0
15:25:56.849888 IP ip2.cddbp-alt > ip1.54454: Flags [P.], seq 1:60, ack 117, win 227, options [nop,nop,TS val 177209146 ecr<PHONE_NUMBER>], length 59
15:25:56.849931 IP ip1.54454 > ip2.cddbp-alt: Flags [.], ack 60, win 2057, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209146], length 0
15:25:56.863681 IP ip1.54454 > ip2.cddbp-alt: Flags [P.], seq 117:348, ack 60, win 2057, options [nop,nop,TS val<PHONE_NUMBER> ecr 177209146], length 231
15:25:56.952799 IP ip2.cddbp-alt > ip1.54454: Flags [.], seq 1508:2956, ack 348, win 235, options [nop,nop,TS val 177209236 ecr<PHONE_NUMBER>], length 1448
example2:
curl https://www.google.com/ -v -x ip2:8880 is fail
tcpdump log:
15:24:07.440647 IP ip1.54135 > ip2.cddbp-alt: Flags [S], seq<PHONE_NUMBER>, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val<PHONE_NUMBER> ecr 0,sackOK,eol], length 0
15:24:07.553853 IP ip2.cddbp-alt > ip1.54135: Flags [S.], seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 28960, options [mss 1460,sackOK,TS val 177099811 ecr<PHONE_NUMBER>,nop,wscale 7], length 0
15:24:07.553931 IP ip1.54135 > ip2.cddbp-alt: Flags [.], ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177099811], length 0
15:24:07.554118 IP ip1.54135 > ip2.cddbp-alt: Flags [P.], seq 1:121, ack 1, win 2058, options [nop,nop,TS val<PHONE_NUMBER> ecr 177099811], length 120
15:24:07.610284 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610290 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610291 IP ip2.cddbp-alt > ip1.54135: Flags [R.], seq 1, ack 121, win 3193, length 0
15:24:07.610292 IP ip2.cddbp-alt > ip1.54135: Flags [.], ack 121, win 227, options [nop,nop,TS val 177099922 ecr<PHONE_NUMBER>], length 0
15:24:07.610350 IP ip1.54135 > ip2.cddbp-alt: Flags [R], seq<PHONE_NUMBER>, win 0, length 0
I don't understand the difference between these two. If it's a problem with the client and proxy, why did the first example succeed

I believe that addressing this issue lies beyond the technical scope of this project. It is likely that only the intermediate network operator or device can provide a solution.
~Additionally, if your proxy_connect server crashes, the Linux kernel will send a RST (reset) packet to your client.~

I also have this problem, and only of HTTPS Google. Because i try Github and others, all is right.
i try curl google.com -vx xxx:55580, all is right.
then i try curl https://google.com -vx xxx:55580, get error
* processing: https://google.com
*   Trying xxx.xxx.xxx.xxx:55580...
* Connected to xxx.link (xxx.xxx.xxx.xxx) port 55580
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to google.com:443
> CONNECT google.com:443 HTTP/1.1
> Host: google.com:443
> User-Agent: curl/8.2.1
> Proxy-Connection: Keep-Alive
>
* Recv failure: 连接被对方重设
* Closing connection
curl: (56) Recv failure: 连接被对方重设

more information of HTTPS Github
* processing: https://github.com
*   Trying xxx.xxx.xxx.xxx:55580...
* Connected to xxx.link (xxx.xxx.xxx.xxx) port 55580
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to github.com:443
> CONNECT github.com:443 HTTP/1.1
> Host: github.com:443
> User-Agent: curl/8.2.1
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection Established
< Proxy-agent: nginx
<
* CONNECT phase completed
* CONNECT tunnel established, response 200
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=GitHub, Inc.; CN=github.com
*  start date: Feb 14 00:00:00 2023 GMT
*  expire date: Mar 14 23:59:59 2024 GMT
*  subjectAltName: host "github.com" matched cert's "github.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS Hybrid ECC SHA384 2020 CA1
*  SSL certificate verify ok.
* using HTTP/2
* h2 [:method: GET]
* h2 [:scheme: https]
* h2 [:authority: github.com]
* h2 [:path: /]
* h2 [user-agent: curl/8.2.1]
* h2 [accept: */*]
* Using Stream ID: 1
> GET / HTTP/2
> Host: github.com
> User-Agent: curl/8.2.1
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 200
< server: GitHub.com
< date: Wed, 09 Aug 2023 09:12:27 GMT
< content-type: text/html; charset=utf-8
< vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Language, Accept-Encoding, Accept
, X-Requested-With
< content-language: en-US
< etag: W/"0a6e9e1ede5c6e7026bb28bffd29f2b8"
< cache-control: max-age=0, private, must-revalidate
< strict-transport-security: max-age=31536000; includeSubdomains; preload
< x-frame-options: deny
< x-content-type-options: nosniff
< x-xss-protection: 0
< referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin

...

<

<!DOCTYPE html>
...

this my nginx config file
...
 server {
     listen                         55580;
     resolver                       <IP_ADDRESS>;
     proxy_connect;
     proxy_connect_allow            443 80;
     proxy_connect_connect_timeout  10s;
     proxy_connect_read_timeout     10s;
     proxy_connect_send_timeout     10s;
     location / {
         proxy_pass http://$host;
         proxy_set_header Host $host;
     }
 }

this my nginx version
nginx version: nginx/1.24.0
built by clang 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
built with OpenSSL 1.1.1t-freebsd  7 Feb 2023
TLS SNI support enabled
configure arguments: --prefix=/usr/home/nginx --with-http_ssl_module --with-http_stub_s
tatus_module --with-http_realip_module --with-threads --add-module=ngx_http_proxy_connect_module

only two case may produce RST error

intermedia network problem
nginx worker process with proxy_connect module crashed, then Operating System (like linux kernel) will send RST package directly to the connections held by original process

I also have this problem, and only of HTTPS Google. Because i try Github and others, all is right.
i try curl google.com -vx xxx:55580, all is right.
then i try curl https://google.com -vx xxx:55580, get error
* processing: https://google.com
*   Trying xxx.xxx.xxx.xxx:55580...
* Connected to xxx.link (xxx.xxx.xxx.xxx) port 55580
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to google.com:443
> CONNECT google.com:443 HTTP/1.1
> Host: google.com:443
> User-Agent: curl/8.2.1
> Proxy-Connection: Keep-Alive
>
* Recv failure: 连接被对方重设
* Closing connection
curl: (56) Recv failure: 连接被对方重设

more information of HTTPS Github
this my nginx config file
...
 server {
     listen                         55580;
     resolver                       <IP_ADDRESS>;
     proxy_connect;
     proxy_connect_allow            443 80;
     proxy_connect_connect_timeout  10s;
     proxy_connect_read_timeout     10s;
     proxy_connect_send_timeout     10s;
     location / {
         proxy_pass http://$host;
         proxy_set_header Host $host;
     }
 }

this my nginx version
nginx version: nginx/1.24.0
built by clang 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
built with OpenSSL 1.1.1t-freebsd  7 Feb 2023
TLS SNI support enabled
configure arguments: --prefix=/usr/home/nginx --with-http_ssl_module --with-http_stub_s
tatus_module --with-http_realip_module --with-threads --add-module=ngx_http_proxy_connect_module

As many people report the similar problem, I think I need to look into it again. Please help me debug with this problem, but I guess the main reason is that the package is blocked by intermedia network operator, like man-in-the-middle attack.
I need some more information from your case

Did your nginx worker crash with the proxy_connect module enabled?

you can check log record in your nginx error.log, like this "2023/07/31 22:13:02 [alert] 3810#0: worker process 3811 exited on signal 11" or other alert level logs
or check your operating system log, like "$ dmesg| grep segfault" in linux kernel

Track the tcp packages flow on your server, to determine whether your nginx server or operating system sent the RST package

record the package on the machine of nginx server, not on your machine of the client. From the curl result, we already knew that RST package has been recevied by client.
using the command like $ sudo tcpdump -i any -nn port 55580 on the server side

If the main reason of this issue was caused by the intermedia network operator or other middle man, let me guess why it could be:
Although the proxied data flow over CONNECT tunnel could be encrypted, ussually https, the process of establishing the CONNECT tunnel is not encrypted (it can be encrypted if you need, see https CONNECT tunnel).

If you use the command like curl -x ip:port https://xxxx.com, the process of establishing the CONNECT tunnel is just to send a unecrypted CONNECT request, its plain text, just like the debug info from the -v option of the curl command:

The middle man can then obtain two pieces of information from your request, and can do some blocking based on some strategies

you want to use some proxying method to transfer network flow
the destination(https://xxxx.com) you want to proxy

The server which run nginx is a public server, I can't use sudo, so i can't track the tcp packages flow on server
There is nothing in nginx/logs/error.log, it's blank. And nginx/logs/access.log is here
15x.1xx.1xx.x31 - - [11/Aug/2023:08:11:00 +0200] "CONNECT google.com:443 HTTP/1.1" 499 0 "-" "curl/8.
2.1"
15x.1xx.1xx.x31 - - [11/Aug/2023:08:11:42 +0200] "CONNECT twitter.com:443 HTTP/1.1" 200 3793 "-" "cur
l/8.2.1"

I don't change anything about nginx.conf - error_log. This is the case in nginx.conf
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

The server which run nginx is a public server, I can't use sudo, so i can't track the tcp packages flow on server
There is nothing in nginx/logs/error.log, it's blank. And nginx/logs/access.log is here
15x.1xx.1xx.x31 - - [11/Aug/2023:08:11:00 +0200] "CONNECT google.com:443 HTTP/1.1" 499 0 "-" "curl/8.
2.1"
15x.1xx.1xx.x31 - - [11/Aug/2023:08:11:42 +0200] "CONNECT twitter.com:443 HTTP/1.1" 200 3793 "-" "cur
l/8.2.1"

I don't change anything about nginx.conf - error_log. This is the case in nginx.conf
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

From this log "15x.1xx.1xx.x31 - - [11/Aug/2023:08:11:00 +0200] "CONNECT google.com:443 HTTP/1.1" 499 0 "-" "curl/8.", the nginx server received a FIN package from the client side before nginx server will send 200 status code. (499 nginx status code means the client actively closes the connection.)
So I'm more sure the connection of the CONNECT request had been attacked by some middle man (maybe network operator, FW, server hosting provide and etc.), which sent a RST package to the client side and a FIN package to the server side.

I am having stange issue:-
maybe @chobits can help me out
This is my config
server {
        listen                         3128;
        # dns resolver used by forward proxying
        resolver                       <IP_ADDRESS>;

        # forward proxy for CONNECT requests
        proxy_connect;
        proxy_connect_allow            443 563;
        proxy_connect_connect_timeout  10s;

        # defined by yourself for non-CONNECT requests
        # Example: reverse proxy for non-CONNECT requests
        location / {
            proxy_pass http://$host;
            proxy_set_header Host $host;
        }
    }

And I get following response:-
curl  -x http://localhost:3128 -k https://google.com
<!DOCTYPE html>

  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 403 (Forbidden)!!1</title>

403. That’s an error.

Your client does not have permission to get URL / from this server.  That’s all we know.

It seems that it worked, from the curl result, that means CONNECT tunnel was established and got a 403 response from proxied server. If you ask me why it is 403 while not 200 status code, I could not help you, it bases on your network environment. You can directly check google.com via curl https://google.com, the result should be 403 same as curl->proxy_connect->backend situcation if your proxy_connect is on your local machine.

I am having stange issue:- maybe @chobits can help me out
This is my config
server {
        listen                         3128;
        # dns resolver used by forward proxying
        resolver                       <IP_ADDRESS> ipv6=off;

        # forward proxy for CONNECT requests
        proxy_connect;
        proxy_connect_allow            443 563;
        proxy_connect_connect_timeout  10s;

        # defined by yourself for non-CONNECT requests
        # Example: reverse proxy for non-CONNECT requests
        location / {
            proxy_pass http://$host;
            proxy_set_header Host $host;
        }
    }

And I get following response:-
curl  -x http://localhost:3128 -k https://google.com
<!DOCTYPE html>

  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 403 (Forbidden)!!1</title>

403. That’s an error.

Your client does not have permission to get URL / from this server.  That’s all we know.

Its an hetzner cloud server which has ipv4 and ipv6
Could that be a problem ?

Its an hetzner cloud server which has ipv4 and ipv6 Could that be a problem ?

If you use command curl, it will use IP address from /etc/resolv.conf as DNS server, while the proxy_connect module uses your configured directive resolver  <IP_ADDRESS> as DNS server.
You can configure resolver <IP> to IP address from /etc/resolv.conf

add -sv option to your curl command, and show two results from curl -sv https://google.com and curl  -sv -x http://localhost:3128 -k https://google.com

i have same problem, got error log:
proxy_connect: client prematurely closed connection (104: Connection reset by peer), client: xxx.xxx.xxx.xx, server: , request: "CONNECT www.google.com:443 HTTP/1.1", host: "www.google.com:443"

"CONNECT www.google.com:443 HTTP/1.1" 499 0 "-" "curl/8.2.1"

but when i run curl on another server(IP in USA and IP in Japan), success get html.

If there is like a middle man attack, this module might not address the problem. 😢

For the other users, I just have been investigating the problem following this thread. But I havent been able to find a soloution yet now if the reason is a middle man attack.

If you are in china, this is disabled to proxy to google, this is aliyun's reply.

If someone believes the issue is not related to a network problem and has discovered some meaningful issues (such as potential software anomalies). Please feel free to file a new issue and include your thoughts, particularly the steps to reproduce.


Build multi-arch images

Build multi-arch images

@ajaypratap003 I see ERROR: failed to solve: process "/bin/sh -c npm install -g yarn && yarn install --network-timeout 500000 && yarn build" did not complete successfully: exit code: 1 at https://github.com/artemiscloud/activemq-artemis-self-provisioning-plugin/actions/runs/5316008951/jobs/9625058267?pr=53
Could you convert it to draft, if you are still working on it?

I merged your pr on the main branch of my fork to test the workflows and I see the following issues:
https://github.com/brusdev/activemq-artemis-self-provisioning-plugin/commits/main

context is 1GB #9 transferring context: 1.06GB 87.3s done (https://github.com/brusdev/activemq-artemis-self-provisioning-plugin/actions/runs/5343109445/jobs/9685766432)
ci and release workflows take more than 20 mins

https://github.com/brusdev/activemq-artemis-self-provisioning-plugin/actions/runs/5343109445/jobs/9685766432
https://github.com/brusdev/activemq-artemis-self-provisioning-plugin/actions/runs/5343115105/jobs/9685778763

@brusdev As ARM64 image taking time for building, I had discussion with other folks about building ARM64 container image and this is known issue specially for UI build.
AMD64 image building is fine and as we are not building ARM64 image on PR and It will build on main branch after merging PR.
I checked it on my fork branch and build is fine but taking long time as known issue.
https://github.com/ajaypratap003/activemq-artemis-self-provisioning-plugin/actions/runs/5358976860/jobs/9721974019
I think we can merge this PR.


Error converting simple docx to pfd

Hi! I am using your api to convert  word document .docx to pdf . Is very simple with one line of text, nothing else, but I am always getting the same error:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getBackgroundColor(Lorg/apache/poi/xwpf/usermodel/XWPFParagraph;)Lorg/apache/poi/xwpf/converter/core/Color;
And in other document with .doc extension that contais several tables, I get this one:
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: Exception executing transformer: org.apache.fop.fo.ValidationException: The column-number or number of cells in the row overflows the number of fo:table-columns specified for the table. (See position 19:265)
at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:215)
Could anybody help me? Thanks!!

My app uses external libraries to handle the conversion. The exceptions you describe originate from them which I have no control over... I'm not sure if I can do anything about it.


Needs a transpiled distribution version of js

Thanks for passing along this wrapper!
We don't typically transpile our node_modules folder. Could you create a transpiled version of the component for distribution?

@fotomut hey! Thanks for opening up an issue to track. I just threw up the quickest MVP wrapper I could and hoped I could gain some interest and the issues/requests came rolling in. I intend to comb through the original react-codemirror issue tracker for getting ahead of the bend a bit.
Regarding this, could you please elaborate slightly more? Does your need regard the consumption of .jsx files? Would you be expecting to consume some distributed .js file for this? If so, what does that look like?

@scniro Yes, we will need to consume a .js file that is in ES5. We have .jsx files, but they are in our project directories and are the only things that we are transpiling.

@fotomut  you got it 👍. Will keep you posted.

Hey again. 0.0.2 pushed up. Could you let me know if this is what you were needing? Also if you use codemirror a lot please, feel free to keep feeding suggestions for this wrapper component. I just started using codemirror so I wouldn't quite consider myself a power user quite yet. Unsure of all the cases where one would want some functionality at this moment. Surely I'll find them as I use it, but if you have any "must-haves" - sharing them would be super appreciated. Thanks!


Admin Respawn Verb now works as intended

About the PR

closes #21696
For some reason the respawn verb was using the name of the person who used it instead of the person that was targeted.
Why / Balance

Admin suffering minor nerf needed.
Technical details

For some reason the verb was using the admin's actor component to get a name instead of the targeted player's. In order for the player's component to be used it had to be moved inside the TryComp if statement for the player and actor swapped with targetActor.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

https://github.com/space-wizards/space-station-14/assets/32041239/0c1125b4-54ab-40a3-9523-a7c9a1f04fa2
Breaking changes

Changelog

Ok I realized I forgot to remove the HasComp check which is redundant there. Don't merge yet I'll fix it.

It should be fine now


Local pull request success status testing

Docs Build status updates of commit c5a4fab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

E2E_DocsBranch_Dynamic/index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Migrate ContactDetectors into Contacts folder

ContactDetectors moved from Estimators folder into Contacts folder
Previously existing tests in Contacts/tests moved into Contacts/tests/Contacts while ContactDetector tests moved into Contacts/tests/ContactDetectors.

I forgot to change the namespaces.

I forgot to change the namespaces.

Fixed in https://github.com/dic-iit/bipedal-locomotion-framework/pull/209/commits/786263be13867aabadc66985e7c3a02d5635b6ef

Could you please update the include guards?
E.g. BIPEDAL_LOCOMOTION_SCHMITT_TRIGGER_DETECTOR_H -> BIPEDAL_LOCOMOTION_CONTACT_DETECTORS_SCHMITT_TRIGGER_DETECTOR_H

Done in https://github.com/dic-iit/bipedal-locomotion-framework/pull/209/commits/c99eda6c0e2581637119ef586c92288faa8e6ba8

Super! Let me know if you want to reorganize the commits otherwise, I will merge

Thanks @GiulioRomualdi ! I have squashed and rebased the commits.