[bug] HA integration fails when you set a name on a zwave device

Version
Build/Run method: Manually built (git clone - npm install - npm run build )
Zwave2Mqtt version: master branch
Openzwave Version: master branch
Describe the bug
I'm using the HA integration with MQTT.
This works, but only when i do NOT set a name for the zwave device within zwave2mqtt. If i set the name, then it fails to work. This seems to be because the MQTT integration on the HA side uses the entity name, which by default uses the NodeID_XX format.
The message that HA publishes: homeassistant/nodeID_21/37/1/0/set True
The message that zwave2mqtt expects: homeassistant/plug1/37/1/0/set True
Plug1 is the name i gave the device.
To Reproduce
Steps to reproduce the behavior:

Setup Zwave2mqtt
Enable the HA integration.
Set a name on the device
Try the integraiton

Expected behavior
The MQTT from HA messages to be understood by zwave2mqtt.
Additional context
My suggestion would be that Zwave2Mqtt starts listening to the name of the device AND the id AND the nodeID_XX messages. This would fix the integration with HA.
I think this also might have to do with me pushing the the discovery for existing devices into HA and HA seeing the device name correctly, but the entities associated with that device still have the original name that it first got. So i think this could easily be a HA bug too.
Listening to multiple messages might not be the right fix, but it will at least make it work :)

I have to say, this is starting to feel more like a HA bug.
I've removed the MQTT integration from my configuration.yaml, restart and added it again. Had the names in zwave2mqtt changed and this didn't reflect. What's more, one of the nodes i had a name for in HA (so the name override) suggested it. So there's some form of caching in HA that's fishy here.

For others who might have this problem. I managed to get this to work by disabling the 'use name' option. You then have to do rediscover on all your items. Twice. :)

Quick question. In Z2M, on the node, there is a json discovery document for each of its "devices" (entities). Which mqtt paths do they describe?
HA should interact with those paths - or variations thereof.
Also, when changing from Names to Not-Names, it's a really good idea to clear the MQTT broker of topics related to Z2M. If retaining is set, HA will re-discover all the non-functional devices again.

Here's an example of one:

{
  "type": "sensor",
  "object_id": "electricity_a_meter",
  "discovery_payload": {
    "value_template": "{{ value_json.value }}",
    "device_class": "power",
    "unit_of_measurement": "A",
    "state_topic": "homeassistant/19/50/1/5",
    "json_attributes_topic": "homeassistant/19/50/1/5",
    "device": {
      "identifiers": [
        "zwave2mqtt_0xcedefd0b_node19"
      ],
      "manufacturer": "TKB Home",
      "model": "TZ69E Smart energy plug in switch (0x0103)",
      "name": "mediacentre",
      "sw_version": "Unknown"
    },
    "name": "mediacentre_electricity_a_meter",
    "unique_id": "zwave2mqtt_0xcedefd0b_19-50-1-5"
  },
  "discoveryTopic": "sensor/mediacentre/electricity_a_meter/config",
  "values": [
    "50-1-5"
  ],
  "persistent": false,
  "id": "sensor_electricity_a_meter"
}

This is from one that's working.
I used to have these values stored, this i think is not a good idea as then it uses the stored values. The store option is now also off.
So, i raised this item, but i believe it's configuration that caused it. The integration is working fine. I will see if i can find some time to update the docs to reflect my configuration better as that would be needed.
I also think that this should be turned into a feature request, as i do think that Z2M can handle this better.

Z2M firstly is born as a simple zwave2mqtt gateway, has integration is born after many users have ask for it. That said, you can manage valueId nodes and their topic with an high level of customization, hass discovery is made after a node is ready, so if you make changes like change its name or something else that changes the topic of the values, or if you store its disovery values and then you change something that changes the discovery topic this will break for sure the comminucation with hass as the didcovery is static. In this cases what you have to do is to manually call update discovery from the ui so I will completely recalc all discovery configuration with the updated topic values. This is not a bug at all but it's just a wrong use of the gateway. YOu should enable hass discovery only one your network is completely configured

I agree.
Thanks for explaining. This will be help for for others!

@cyclops1982 @LordMike I'm not an HASS user so I don't know the problems that users could have when they first start to use z2m with hass. I would be glad if someone of you could write a section like 'Hass quick start' or something like that with useful information and step guide for newbes that are using z2m, maybe this will save from many question/issues in future :)

It will! I'll try to see if i can find the time.
For now, this software is really making life with HASS easier! Really keep up the good work!


⚠ ClamAV has degraded performance

In bb8fee7, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 95 ms

Resolved: ClamAV performance has improved in 271aaf3 after 5 minutes.


The greasemonkey files aren't found

When using in qutebrowser it won't be able to get the require file

Even on the readme, the part of the greasemonkey install link it will lead to a not found page

Hi @arisu0 !
Is there a specific part of the code that had that link? The issue here is that the default branch for the repository was renamed from master to main (see why GitHub recommends this). I'd love to correct that link if it's occuring somewhere.
Otherwise, on your side, just replace where the link says master with the word main. Let me know if that doesn't do it!

Thanks for letting me know; updated all those references :)


Tests not running in latest version of Puma

Running tests with the following setup:
rails 4.1.15
teaspoon 1.1.4
teaspoon-jasmine 2.2.0

Puma version 2: Tests run successfully using the teaspoon rake task
2.16.0 being the latest version under the version 2 major release
$ teaspoon
Starting the Teaspoon server...
Puma 2.16.0 starting...
* Min threads: 0, max threads: 16
* Environment: test
* Listening on tcp://<IP_ADDRESS>:52097
Teaspoon running default suite at http://<IP_ADDRESS>:52097/teaspoon/default

# shortened

Finished in 2.06400 seconds
657 examples, 0 failures

Puma version 3: Process hangs using the teaspoon rake task
3.0.0 being the first version under the version 3 major release, the same happens on the latest version 3.4.0
$ teaspoon
Starting the Teaspoon server...
* Pruning Bundler environment
[48840] Puma starting in cluster mode...
[48840] * Version 3.0.0 (ruby 2.1.2-p95), codename: Plethora of Penguin Pinatas
[48840] * Min threads: 1, max threads: 4
[48840] * Environment: development
[48840] * Process workers: 2
[48840] * Phased restart available
[48840] * Listening on tcp://<IP_ADDRESS>:3000
[48840] Use Ctrl-C to stop
[48852] + Gemfile in context: /path/to/project/Gemfile
[48853] + Gemfile in context: /path/to/project/Gemfile
[48840] - Worker 1 (pid: 48853) booted, phase: 0
[48840] - Worker 0 (pid: 48852) booted, phase: 0

No puma configs have changed, though I notice that puma always connects to port 3000 in the puma 3 output whereas it uses a random port in puma 2. teaspoon --server-port=3000 has no effect.

Upon further investigation this was caused by starting Puma 3.x in Cluster Mode. Switching to Single Mode (by removing the workers config in Puma) allowed us to run the test suite as expected. Safe to close this up.


Error: You are using the following variables which haven't been populated: buildDate...

Seems that v0.1.4 introduced changes where the context of buildDate in the template is no longer accessible.
Up to v0.1.3, this config worked:
config.plugins.push(
    new VersionFile({
        output: path.resolve(paths.old_web_proj, 'ViewModels/Version', 'AppVersionCurrent.cs'),
        templateString: '//generated by __filename webpack.prod.config.js\n' +
                        'namespace StrangeBrew.Web.ViewModels.Version\n' +
                        '{\n' +
                        '    public partial class AppVersion\n' +
                        '    {\n' +
                        '        public static readonly AppVersion Current = new AppVersion(\n' +
                        '                name: "<%= name %>",\n' +
                        '                version: "<%= version %>",\n' +
                        '                year: <%= buildDate.getYear()+1900 %>,\n' +
                        '                month: <%= buildDate.getMonth()+1 %>,\n' +
                        '                day: <%= buildDate.getDate() %>,\n' +
                        '                hour: <%= buildDate.getHours() %>,\n' +
                        '                minute: <%= buildDate.getMinutes() %>,\n' +
                        '                gmtOffsetMinutes: <%= buildDate.getTimezoneOffset() %>);\n' +
                        '    }\n' +
                        '}'
    }),
    new VersionFile({
        output:  path.resolve(paths.src, 'data/stores/', 'version.ts'),
        templateString: "import {IAppVersion} from './IAppVersion';\n\n" +
        "export const BrewNinjaAppVersion: IAppVersion = { \n" +
        "    Name: '<%= name %>', \n" +
        "    Version: '<%= version %>', \n" +
        "    Date: '<%= buildDate %>' \n" +
        "};"
    }),

    new webpack.DefinePlugin({
        "process.env": {
            NODE_ENV: JSON.stringify("production"),
        }
    })
);

v0.1.4 generates the above error, with no other code changes other than updated version. Stacktrace:
 at VersionFile.apply (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack-version-file\lib\index.js:97:15)
    at webpack (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack\lib\webpack.js:51:13)
    at processOptions (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack-cli\bin\cli.js:272:16)
    at yargs.parse (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack-cli\bin\cli.js:364:3)
    at Object.parse (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\yargs\yargs.js:567:18)
    at C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack-cli\bin\cli.js:49:8
    at Object.<anonymous> (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack-cli\bin\cli.js:366:3)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (C:\Users\jperi\Developer\BrewNinja\StrangeBrewWeb\StrangeBrew.App\node_modules\webpack\bin\webpack.js:156:2)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Recommend re-tagging as v0.2.0 so that ^0.1.3 references in package.json don't inadvertently update to v0.1.4.

Hey @hotdang-ca thanks a lot for reporting this and providing so many details on the issue! I'm sorry this has suddently stopped working, it was not intended to be a breaking change -- I just wanted to add some better error handling and overlooked the fact that variables could be objects themselves. I've just published<EMAIL_ADDRESS>which should fix the issue. Can you please give it a go and let me know? Cheers 🙌

Hey @hotdang-ca have you had the chance to test this? Thank you 🙂


Please added the option to debug in the local terminal

I've used some other code runners that don't open an extra shell when debugging, but instead open a session in a local terminal in vscode. Maybe I didn't find where this setting is, if really existing such a setting, please let me know, if such a setting does not exist, I would like to be able to add, thank you.

Hi, can you send me a name of an extension with this behavior?

Hi, can you send me a name of an extension with this behavior?

Or do you mean the popup window with msvc as the Compiler?

I highly discourage the behaviour of the Code Runner extension especially that the commands are not run in a "real" terminal, instead they use the output tab, right?
I dont like this at all tbh.
And no there is no such setting in my extension.


Multiple-choice voting

Hey team! Please add your planning poker estimate with Zenhub @fabiolalombardim @Man-Jain @EightRice


upgrade phantom to 2.0.0

any reason this was closed? does anyone know the roadmap for when 2.0.0 would be used?

I pulled the trigger on this a little too soon as PhantomJS has yet to release the official binaries for linux for 2.0.  Also, the binary they released for Max OSX doesn't work on Yosemite.
On the latest rev on my fork I've linked to temporary self hosted binaries for linux and macosx that work on ubuntu14.04 (64 bit) & Yosemite that were compiled by eugene1g linked here as temporary solutions until the official binaries are released.

@joedivita makes sense.  thanks for the reply!

It looks like there is a way to run 2.0 on Yosemite: https://github.com/ariya/phantomjs/issues/12900#issuecomment-74073057

Can we re-open this?

@metaskills Looks like they've already upgraded the master branch to v 2.1.1 for all platforms, no?:
https://github.com/colszowka/phantomjs-gem/blob/master/lib/phantomjs/platform.rb#L133

They have... but I have a repo that needs 2.0.x


Cleanup code

and use f-strings everywhere

Well I want to help. I don't know ML but I can refactor the code and make it clean.

Well I want to help. I don't know ML but I can refactor the code and make it clean.

That would be great =) Maybe do it part by part (so we can agree on how to do it ;) )
It's also about typing and making it follow pep8. I will setup Github workflow with flake8 check soon (as I did for SB3).

so for now can I start refactoring?

so for now can I start refactoring?

yes you can, but please create a draft PR when you have one file refactored ;)

You're already using f-string in train.py

You're already using f-string in train.py

Everywhere? The main issue currently is that I did half a cleanup. So, some methods are typed, some are using f-strings, some are documented but not everything...

Yeah I found some dirty string inside utils cleaning up now :)

And there is one more thing some strings are double-quoted and some strings are single-quoted, should i fix those too??

try:             x, y = ts2xy(load_results(reward_log), 'timesteps')             skip_eval = len(x) > 0         except:             pass
which type of exception this try block throws?

And there is one more thing some strings are double-quoted and some strings are single-quoted, should i fix those too?

Yes, you can

which type of exception this try block throws?

Good question. I would say it may fail for several reasons. It tries to load a csv file and may be fail because:

the file does not exist
the file is not properly formatted
the files does contain only headers

unfortunately, I wrote that piece of code long time ago (already two years!) so I don't remember exactly what time of exception was thrown...

Good question. I would say it may fail for several reasons. It tries to load a csv file and may be fail because:

the file does not exist
the file is not properly formatted
the files does contain only headers

I'm asking because it's bare except which is not ideal in python

I created draft PR. Check it out.

I'm asking because it's bare except which is not ideal in python

I know, that's why I created that issue... I would need to make it crash again to give you an answer

I know, that's why I created that issue... I would need to make it crash again to give you an answer
Yes, Because I don't know how to test this thing.

Yes, Because I don't know how to test this thing.

It's in the readme (once the dependencies are installed):
python -m utils.benchmark
but to re-create the errors, you would need to create corrupted files... Don't bother too much about that one.

Okay. Check my PR if you approve I can refactor other files.

why we're importing tkinter in benchmark.py?

Hey, I'm refactoring callbacks.py
Why we're importing pickle?

I created another PR for record_video.py. Please verify it.

I have one question what to do about complexity warnings?

What to do about complexity warnings?

You can ignore them for now

Why we're importing pickle in callbacks.py?

no good reason anymore

no good reason anymore

So, can i remove it?

yes, please do, I added # pytype: disable=import-error to the ones that should stay ;)

OKAY

and what about assigned but never used variables in hyperparams?

can you explain why the assert has these lines?

in train.py instead of writing all login in if statement, we can create a function with that code and then call that function in if statement just to reduce complexity

In test_hyperparams_opt.py test_optimizefunction is missing one bracket closing at end accoding to flake, can you exaplain how you declared args.

OKAY and what about assigned but never used variables in hyperparams?

if you don't point to line, I cannot answer...

can you explain why the assert has these lines?

yes, without that assert, if you write incorrect argument in the YAML file, it will fail with a weird error.
This is meant to be more informative.

login in if statement, we can create a function with that code and then call that function in if statement just to reduce complexity

could you elaborate?

is missing one bracket closing at end accoding to flake

Yes, I just integrated flake but did not solve the issues yet.
Please open a PR with the files for the different questions (otherwise, it is hard to follow)

Okay, Creating a draft PR.

@salmannotkhan I will fix the remaining warnings from the linter.
What will be missing is to use type hints everywhere...


make the examples use the States derive macro

Objective
Some examples still manually implement the States trait, even though manual implementation is no longer needed as there is now the derive macro for that.

Can you please run cargo fmt --all? Seems like CI is only failing on formatting.


fix: Headless / Dedicated Server detection now works on Unity 2019/2020 without dedicated server build support too

oh heck no...a thousand times no.


Improved UI of Footer for "Read The Shlok" page

can u give a screenshot of implementation

At First You could not move the shlokas, now you can freely move the shlokas

Ok, I will make relevant changes

check the above image its is perfect, It is distorting the new quote button and twitter

ok


bugs. Too many open files

when using nvim-lspconfig clangd, lsp-lens together
go to definition
jump to another file after lspconfig jump to the right one.
then press  to go back,
cause.
Error detected while processing BufEnter Autocommands for "*"..BufReadPost Autocommands for
 "*":
Error executing lua callback: ...brew/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:2
4: Error executing lua: ...brew/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:25: Buf
Enter Autocommands for "*"..BufReadPost Autocommands for "*"..FileType Autocommands for "*"
..function <SNR>1_LoadFTPlugin[19]..script /Users/chenxu/cx_rc/config/nvim/after/ftplugin/c
pp.lua: Vim(runtime):E5112: Error while creating lua chunk: cannot open
~/.config/nvim/after/ftplugin/cpp.lua: Too many open files
stack traceback:
        [C]: in function 'nvim_cmd'
        ...brew/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:25: in function <...bre
w/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:24>
        [C]: in function 'nvim_buf_call'
        ...brew/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:24: in function <...bre
w/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:10>
stack traceback:
        [C]: in function 'nvim_buf_call'
        ...brew/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:24: in function <...bre
w/Cellar/neovim/0.9.5/share/nvim/runtime/filetype.lua:10>

remove lsp-lens, lspconfig works fine
Is anyone has the same issues?

What's your current loginLimits?
I'm uncertain if it pertains specifically to this plugin.
I encountered similar issues with other plugins, such as git-integrated, but resolved them by increasing my loginLimits.

I got a error like Process failed to start: too many open files: "/opt/homebrew/bin/git" in few days ago.
In my macOS environment, following instruction fixed that error.

sudo vi /Library/LaunchDaemons/limit.maxfiles.plist.

Write following code to the files.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>524288</string>
      <string>524288</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

Reboot your mac.

In the settings, I disabled:
sections.git_authors = disable

The ulimit stuff wasn't really working for me.

The code doesn't look too suspicious:
https://github.com/VidocqH/lsp-lens.nvim/blob/48bb1a7e271424c15f3d588d54adc9b7c319d977/lua/lsp-lens/lens-util.lua#L194-L197
Though it's missing a "--" before file_path to correctly handle files that start with a -, and also not be susceptible to incredibly common dotfiles injection attacks :).
Maybe git blame is called too many times at once? Perhaps git fails with simultaneous calls.  Not sure. Maybe this needs to be logged with timestamps.


Improvements sugested

Hi,
May I suggest the following improvements :

add travis CI buils (to test the role)
add automatic documentation generation using anisgenome
nodejs_global_packages can be disable if we want it to be empty

Do not hesitate to tell me if you want me to change anything.
Best regards,
Alban

@AlbanAndrieu Changing a project's license is kind of a big move, and it seems very much unrelated to the other changes. Your changes stand a better chance of merging if you submit pull requests that are small and cohesive. This looks to me like three pull requests: one for each bullet item. You could create another one for the license change, but you should be prepared to present a strong argument for why you think that should happen.

I've re-worked the testing in almost all the AnsibleShipyard files. Started this work last week. You can see the resulting dockerfiles here: https://registry.hub.docker.com/repos/ansibleshipyard/
The tests now sit in ci/ and are shared between travis AND the Dockerfile.
As Brad has mentioned, a case can be made for each of the changes in the list.
It is for that reason they should be separated.

Closing for future PRs, see above comment.


DOC: OptimizeResult Notes are placed before attribute section, but refers to them as if placed after

This is a minor issue, and I wonder if it isn't a bug in either numpydoc or sphinx.
The docstring of OptimizeResult correctly contains the Notes section at the bottom and states There may be additional attributes not listed above[...]. However, in the rendered docs the Notes section is actually placed before the other sections making the reference a bit strange (the attributes are listed below).
Here is the the link to the rendered docs: https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.OptimizeResult.html#scipy.optimize.OptimizeResult

Thanks @FirefoxMetzger. PR welcome. For anyone interested, please see the contributor guide.

@mdhaber What kind of fix would be preferred? Updating the notes to be generic and say additional attributes not listed here or to change the position of Notes?

In the numpydoc style guide, "Parameters" is section #4 and "Attributes" of a class is supposed to go below "Parameters". "Notes" is toward the bottom at #13, so I suppose that changing the order would be best.

@mdhaber In that case I'm not sure how easy this fix will be. In the source code already does the correct thing and lists "Notes" after "Attributes":
https://github.com/scipy/scipy/blob/47bb6febaa10658c72962b9615d5d5aa2513fa3a/scipy/optimize/optimize.py#L83-L118
which means there is something not going as intended during the doc building process; no idea where things break.

OK, in that case, just the generic "additional attributes not listed here" is fine.

For future reference, I just checked the order of sections in a repo I maintain that uses a very similar setup (sphinx+pydata-theme+numpydoc) and found that there, too, the Notes section is placed above the Attributes section when documenting classes: https://scikit-bot.org/en/latest/_autosummary/skbot.transform.Link.html#skbot.transform.Link
I threw out the pydata-theme in my local dev environment (using sphinx default alabaster instead), and the resulting docs still place the Notes section above Attributes.
In conclusion, this appears to be either a feature or a bug of numpydoc; nothing scipy can do much about. I'll see if I can find a related issue upstream and if not I'll see when I can find the time to make a MWE and ask upstream.

Looks like this has been recently raised upstream: https://github.com/numpy/numpydoc/issues/331


Request for supporting documentation of fields as first class citizens

Excellent effort, would be a great replacement for our inhouse python based system. However we are missing an important feature, documenting fields which are accessible from api/programming which helps auto generating documentation, provides schema comments when autogenerating schemas for third party systems etc.

The parser considers comments as first-class citizens, exactly for the purpose you describe, and they are accessible through the ast API.
This is a bit low level, so maybe you referring to the being able to access doc comments in the higher level API as well?
The only tricky bit is what to do if multiple fields are documented. Go does the same thing for package documentation, and we could probably copy that strategy.
The trickier part is individual fields. In CUE, a field can be defined many times, each time with different documentation. So the question is which one to pick. My best guess is to provide a slice with all unique comment groups, starting with the most high-level declarations (imported, then merged from parent dirs, then templates over individual fields).
Let me know if the ast approach suffices, or whether having doc comments accessible through cuelang.org/go/cue.

Thanks Marcel for the prompt response much appreciated.
Yes, we would like to access the doc comments from a higher level API.
Nevertheless we have not yet decided to switch to cue , mentioning it so
you gauge priorities etc. I would not want to sidetrack other priorities
with a feature request that is not important for current users.
I think for individual field docs a possible approach would be to follow
the same logic cue follows for multiple values for consistency.
Perhaps an example of how we currently define data models may be helpful to
you (it's in python but I hope is easy to follow):
class LegalEntityFormat(Spec):
""" which legal entities and currency pairs to include in the

calculation.
"""

version = 1

fields = (

    Field('FundLegalEntity',
          S,
          "The fund legal entity to include in the calculation",
          mandatory=True),

    Field('CalculationCurrency',
          S,
          "The target currency for the calculation. For feeder type

funds this is the share class currency. For master or standalone type funds
this is usually the non base currency involved in the calculation",
domain=CURRENCY_DOMAIN_SET,
mandatory=True),
    Field('RiskCurrency',
          S,
          "The risk currency the particular share class, master fund or

standalone fund is exposed to",
domain=CURRENCY_DOMAIN_SET,
mandatory=True),
    Field('TradeCurrency',
          S,
          "The trade currency on which we will peg the hedging trade",
          domain=CURRENCY_DOMAIN_SET,
          mandatory=True),

    Field('IncludeHedgePL',
          I,
          "If set to 1/true then include anyhedge PL in hedging

calculations.",
mandatory=True),
    Field('IncludeSubscriptions',
          I,
          "If set to 1/true then include subscriptions in hedging

calculations.",
mandatory=True),
    Field('IncludeRedemptions',
          I,
          "If set to 1/true then include redemptions in the

calculation.",
mandatory=True),
    Field('CashBufferAmount',
          F,
          "Cash buffer amount. Set to zero if not applicable.",
          ),

    Field('FundBaseCurrency',
          S,
          "The fund base currency",
          domain=CURRENCY_DOMAIN_SET,
          mandatory=True),

    Field('FundBaseCurrencySettlementAccount',
          S,
          "The settlement account associated with the fund base

currency",
),
    Field('RiskCurrencySettlementAccount',
          S,
          "The settlement account associated with the risk currency",
          ),

    Field('ClientLegalEntity',
          S,
          "The client legal entity if available",
          ),

    Field('FundType',
          S,
          "The fund type if available",
          domain=FUND_TYPE_DOMAIN,
          ),

    Field("RedemptionBufferRatio",
          F,
          "Redemption buffer ratio to apply for cash holdback"),

    Field("MishedgeThreshold",
          F,
          "Mishedge threshold before hedging is adviced"),

    Field("HedgeTargetRatio",
          F,
          "The ratio of the total assets that must be kept hedged at

all times"),
    Field("ExecutionMethod",
          S,
          "Trade execution method",
          domain=EXECUTION_METHOD_DOMAIN),

    Field("ExecutionFeeBasisPoints",
          F,
          "The execution fee in basis points to be levied on the

transaction"),
)

Where s= String, F=Float etc and the base class 'spec' provides utilities
and not relevant for the data definition part.
What we find very useful is that we use such definitions to auto generate
csv parsers, SQL schemas with field docs, example data sets in csv with
each field documented and domains./constrains listed as well as
autogenerated validation functions for the most basic checks (mandary
fields, type compatibility, domain restrictions).
Now perhaps CUE is not meant for such use cases and we misunderstood the
intention but certainly we really like some of the features included and
its relative simplicity so we thought to ask.
Thank you and your team for all the effort and for making cue available.
Warm Regards
On Thu, 18 Apr 2019 at 12:48, Marcel van Lohuizen<EMAIL_ADDRESS>wrote:

The parser considers comments as first-class citizens, exactly for the
purpose you describe, and they are accessible through the ast API.
This is a bit low level, so maybe you referring to the being able to
access doc comments in the higher level API as well?
The only tricky bit is what to do if multiple fields are documented. Go
does the same thing for package documentation, and we could probably copy
that strategy.
The trickier part is individual fields. In CUE, a field can be defined
many times, each time with different documentation. So the question is
which one to pick. My best guess is to provide a slice with all unique
comment groups, starting with the most high-level declarations (imported,
then merged from parent dirs, then templates over individual fields).
Let me know if the ast approach suffices, or whether having doc comments
accessible through cuelang.org/go/cue.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cuelang/cue/issues/36#issuecomment-484431304, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEUFFL3CQK36WRBTHR652DPRA7WLANCNFSM4HG3EJXQ
.

--
Pavlos Christoforou
Point Nine Limited
Mobile:     +357 99 160960
<EMAIL_ADDRESS>

Early on, the first two large potential customers indicated they wanted it to use for code generation of exactly the ilk you describe here. So this is certainly a main focus. In fact, the recent addition of attributes to the language was to accommodate this use case. It allows adding meta information to influence generators for particular languages.
Anyway, it is good to learn of more use cases. And yes, exposing docs in the high-level API was on my todo list.

I think for individual field docs a possible approach would be to follow
the same logic cue follows for multiple values for consistency.

In the example you gave, there won't be much ambiguity and I think my described approach works well (the first comment will be pretty much always the one you need). But I'm open to other suggestions. I'm not sure if you were suggesting something different here.

What we find very useful is that we use such definitions to auto generate
csv parsers, SQL schemas with field docs, example data sets in csv with
each field documented and domains./constrains listed as well as
autogenerated validation functions for the most basic checks (mandary
fields, type compatibility, domain restrictions).

Yes, that is the idea. There are currently some CLs going in mostly the opposite direction (e.g. generating CUE templates from Kubernetes Go code, which treats Go as the source of truth), but code generation in the opposite direction is certainly part of the plan. The idea is that it would not only allow data types but also detailed validation to be shared across languages.
So in CUE, the above first few fields would look something like:
// which legal entities and currency pairs to include in the calculation.
LegalEntityFormat: Spec & {
    version: 1

    // The fund legal entity to include in the calculation
    FundLegalEntity: string

    // currency aliases a regexp constraint of a currency type.
    // TODO: define in other package.
    currency = =~ "^[A-Z0-9]{3}$"

    // The target currency for the calculation. For feeder type
    // funds this is the share class currency. For master or standalone type funds
    // this is usually the non base currency involved in the calculation
    CalculationCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

    // The risk currency the particular share class, master fund or
    // standalone fund is exposed to
    RiskCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

    // The trade currency on which we will peg the hedging trade
    TradeCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

    // The settlement account associated with the fund base currency
    FundBaseCurrencySettlementAccount?: string

    ...
}

Note the question mark to distinguish between optional and mandatory fields. I didn't know what domain meant, so I added an attribute as meta info. For giggles, I also restricted the currency types to be a three-letter ISO currency code.

All clear and thank you for the example Marcel,
(the docs were very clear and useful btw so we think we understand the
various operators/functionality involved).
We will consider CUE further, and if any issues arise we will revert with
more feedback/use cases.
Warm Regards
On Thu, 18 Apr 2019 at 14:03, Marcel van Lohuizen<EMAIL_ADDRESS>wrote:

Early on, the first two large potential customers indicated they wanted it
to use for code generation of exactly the ilk you describe here. So this is
certainly a main focus. In fact, the recent addition of attributes to the
language was to accommodate this use case. It allows adding meta
information to influence generators for particular languages.
Anyway, it is good to learn of more use cases. And yes, exposing docs in
the high-level API was on my todo list.
I think for individual field docs a possible approach would be to follow
the same logic cue follows for multiple values for consistency.
In the example you gave, there won't be much ambiguity and I think my
described approach works well (the first comment will be pretty much always
the one you need). But I'm open to other suggestions. I'm not sure if you
were suggesting something different here.
What we find very useful is that we use such definitions to auto generate
csv parsers, SQL schemas with field docs, example data sets in csv with
each field documented and domains./constrains listed as well as
autogenerated validation functions for the most basic checks (mandary
fields, type compatibility, domain restrictions).
Yes, that is the idea. There are currently some CLs going in mostly the
opposite direction (e.g. generating CUE templates from Kubernetes Go code,
which treats Go as the source of truth), but code generation in the
opposite direction is certainly part of the plan. The idea is that it would
not only allow data types but also detailed validation to be shared across
languages.
So in CUE, the above first few fields would look something like:
// which legal entities and currency pairs to include in the calculation.
LegalEntityFormat: Spec & {
version: 1
// The fund legal entity to include in the calculation
FundLegalEntity: string

// currency aliases a regexp constraint of a currency type.
// TODO: define in other package.
currency = =~ "^[A-Z0-9]{3}$"

// The target currency for the calculation. For feeder type
// funds this is the share class currency. For master or standalone type funds
// this is usually the non base currency involved in the calculation
CalculationCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

// The risk currency the particular share class, master fund or
// standalone fund is exposed to
RiskCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

// The trade currency on which we will peg the hedging trade
TradeCurrency: currency  @domain("CURRENCY_DOMAIN_SET")

// The settlement account associated with the fund base currency
FundBaseCurrencySettlementAccount?: string

...

}
Note the question mark to distinguish between optional and mandatory
fields. I didn't know what domain meant, so I added an attribute as meta
info. For giggles, I also restricted the currency types to be a
three-letter ISO currency code.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cuelang/cue/issues/36#issuecomment-484455556, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEUFFJCENLULU37DFVOXW3PRBIPTANCNFSM4HG3EJXQ
.

--
Pavlos Christoforou
Point Nine Limited
Mobile:     +357 99 160960
<EMAIL_ADDRESS>

Thank you
--
Pavlos Christoforou
Partner
Point Nine Limited
+357 25 02 82 41
www.p9ft.com
135 Arch. Makarios III Ave.
Emelle Building
3021, Limassol
Cyprus
On Fri, 17 May 2019, 00:13 Marcel van Lohuizen<EMAIL_ADDRESS>wrote:

Closed #36 https://github.com/cuelang/cue/issues/36 via 079451a
https://github.com/cuelang/cue/commit/079451a927396a239575acee530e08d4bd77b679
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cuelang/cue/issues/36?email_source=notifications&email_token=AAEUFFIPOWNVTTKTWEJXEVDPVXFBFA5CNFSM4HG3EJX2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGORPXVSOA#event-2347718968,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEUFFMTNWG2PXBN33WCMFTPVXFBFANCNFSM4HG3EJXQ
.

This issue has been migrated to https://github.com/cue-lang/cue/issues/36.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


[Question] 4.0.0 Latex plugin

Just tried out the newest version of the Latex plugin (4.0.0). I can't figure out how to get the formulas rendered.
According to the doc, I don't need ImagesPlugin anymore.
The Markwon initializer becomes the following.
Markwon.builder(getContext()).usePlugin(JLatexMathPlugin.create(18)).build();
However, no matter what formulas I set as the markdown content, it refuses to render the formulas.
Adding jlatexmath-android does nothing as well.

Hello @ringosham !
You are right. Can confirm. There is a bug in latest version involving background-provider. As a quick fix, specify any non-null background-provider when building JLatexMathPlugin (as it requires non-null drawable you can use ColorDrawable(0))

Fixed in latest 4.0.1 release


Deliver not uploading screenshots

New Issue Checklist

[X] Updated fastlane to the latest version
[X] I have read the Contribution Guidelines

Issue Description
Screenshots are not being uploaded via deliver. I tried updating a screenshot and noticed it wasn't updated in iTC. When I run deliver I remember it used to output each file that was being uploaded, similar to what it does for metadata. Now it just says that all screenshots were removed and uploaded successfully.
My screenshots and iTunesConnect directories live outside the fastlane directory, not sure if that's the correct structure or not but metadata upload works fine.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

+----------------------------------------------------+---------------------------------------------+
|                                      deliver 2.36.0 Summary                                      |
+----------------------------------------------------+---------------------------------------------+
| app_identifier                                     | <bundle_id>                                 |
| app_version                                        | 62.0.0                                      |
| build_number                                       | 29874                                       |
| metadata_path                                      | iTunesConnect/<bundle_id>/metadata          |
| screenshots_path                                   | screenshots/<app_name>                      |
| skip_binary_upload                                 | true                                        |
| automatic_release                                  | false                                       |
| overwrite_screenshots                              | true                                        |
| force                                              | true                                        |
| submit_for_review                                  | false                                       |
| submission_information.add_id_info_uses_idfa       | true                                        |
| submission_information.add_id_info_serves_ads      | false                                       |
| submission_information.add_id_info_tracks_install  | true                                        |
| submission_information.add_id_info_tracks_action   | false                                       |
| submission_information.add_id_info_limits_tracking | true                                        |
| username                                           | <email>                                     |
| edit_live                                          | false                                       |
| platform                                           | ios                                         |
| skip_screenshots                                   | false                                       |
| skip_metadata                                      | false                                       |
+----------------------------------------------------+---------------------------------------------+

[19:56:47]: Making sure the latest version on iTunes Connect matches '62.0.0' from the ipa file...
[19:56:50]: '62.0.0' is the latest version on iTunes Connect
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/description.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/keywords.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/release_notes.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/support_url.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/marketing_url.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/name.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/de-DE/privacy_url.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/copyright.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/primary_category.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/secondary_category.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/primary_first_sub_category.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/primary_second_sub_category.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/secondary_first_sub_category.txt'...
[19:56:50]: Loading 'iTunesConnect/<bundle_id>/metadata/secondary_second_sub_category.txt'...
[19:56:53]: Activating language de-DE...
[19:57:00]: Uploading metadata to iTunes Connect
[19:57:09]: Successfully uploaded set of metadata to iTunes Connect
[19:57:11]: Starting with the upload of screenshots...
[19:57:11]: Removing all previously uploaded screenshots...
[19:57:11]: Successfully uploaded screenshots to iTunes Connect
[19:57:13]: Uploading app icon...
[19:57:17]: Finished the upload to iTunes Connect

+------+---------+-------------+
|       fastlane summary       |
+------+---------+-------------+
| Step | Action  | Time (in s) |
+------+---------+-------------+
| 1    | deliver | 66          |
+------+---------+-------------+

Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
✅ fastlane environment ✅

### Stack

| Key                         | Value                                       |
| --------------------------- | ------------------------------------------- |
| OS                          | 10.12.3                                     |
| Ruby                        | 2.4.1                                       |
| Bundler?                    | false                                       |
| Git                         | git version 2.13.0                          |
| Installation Source         | /usr/local/bin/fastlane                     |
| Host                        | Mac OS X 10.12.3 (16D32)                    |
| Ruby Lib Dir                | /usr/local/Cellar/ruby/2.4.1_1/lib          |
| OpenSSL Version             | OpenSSL 1.0.2k  26 Jan 2017                 |
| Is contained                | false                                       |
| Is homebrew                 | false                                       |
| Is installed via Fabric.app | false                                       |
| Xcode Path                  | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version               | 8.3.2                                       |

### System Locale

| Variable | Value       |   |
| -------- | ----------- | - |
| LANG     | en_US.UTF-8 | ✅ |
| LC_ALL   |             |   |
| LANGUAGE |             |   |

### fastlane gems

| Gem      | Version | Update-Status |
| -------- | ------- | ------------- |
| fastlane | 2.36.0  | ✅ Up-To-Date  |

### Loaded fastlane plugins:

**No plugins Loaded**

Loaded gems

| Gem                       | Version      |
| ------------------------- | ------------ |
| did_you_mean              | 1.1.0        |
| slack-notifier            | 1.5.1        |
| CFPropertyList            | 2.3.4        |
| claide                    | 1.0.1        |
| colored2                  | 3.1.2        |
| nanaimo                   | 0.2.3        |
| xcodeproj                 | 1.4.4        |
| rouge                     | 1.11.1       |
| xcpretty                  | 0.2.4        |
| terminal-notifier         | 1.7.1        |
| unicode-display_width     | 1.1.3        |
| terminal-table            | 1.7.3        |
| plist                     | 3.2.0        |
| public_suffix             | 2.0.5        |
| addressable               | 2.5.0        |
| multipart-post            | 2.0.0        |
| word_wrap                 | 1.0.0        |
| tty-screen                | 0.5.0        |
| babosa                    | 1.0.2        |
| colored                   | 1.2          |
| highline                  | 1.7.8        |
| commander-fastlane        | 4.4.4        |
| excon                     | 0.55.0       |
| faraday                   | 0.11.0       |
| unf_ext                   | <IP_ADDRESS>      |
| unf                       | 0.1.4        |
| domain_name               | 0.5.20170223 |
| http-cookie               | 1.0.3        |
| faraday-cookie_jar        | 0.0.6        |
| fastimage                 | 2.1.0        |
| gh_inspector              | 1.0.3        |
| uber                      | 0.0.15       |
| representable             | 2.3.0        |
| retriable                 | 2.1.0        |
| mime-types-data           | 3.2016.0521  |
| mime-types                | 3.1          |
| hurley                    | 0.2          |
| little-plugger            | 1.1.4        |
| multi_json                | 1.12.1       |
| logging                   | 2.2.0        |
| jwt                       | 1.5.6        |
| memoist                   | 0.15.0       |
| os                        | 0.9.6        |
| signet                    | 0.7.3        |
| googleauth                | 0.5.1        |
| httpclient                | 2.8.3        |
| google-api-client         | 0.9.28       |
| json                      | 2.0.2        |
| mini_magick               | 4.5.1        |
| multi_xml                 | 0.6.0        |
| rubyzip                   | 1.2.1        |
| security                  | 0.1.3        |
| xcpretty-travis-formatter | 0.0.4        |
| dotenv                    | 2.2.0        |
| bundler                   | 1.14.6       |
| faraday_middleware        | <IP_ADDRESS>     |
| io-console                | 0.4.6        |
| openssl                   | 2.0.3        |

*generated on:* **2017-06-01**

@trevor-e Do you have your images in a languages folder? Your file structure should look similar to the below example...
- fastlane
  - Fastfile
- screenshots
  - <app_name>
    - en-US
      - image1.jpg
      - image2.jpg
      - image3.jpg
    - de-DE
      - image1.jpg
      - image2.jpg
      - image3.jpg

If you do not have your screenshots in a languages folder, it won't find anything to upload (which I tested). Let me know if this doesn't solve your issue - not exactly sure how your screenshots are organized in your screenshots/<app_name> folder 😇

Yes, I do have the screenshots for each app in language folders.

@trevor-e Can you send me a screenshot of your folder or type up a diagramy thing like I did above of what your file structure looks like? I did fairly certain I matched your setup (see my file structure above) and it worked for me so I would like to make sure mine matches exactly what you have 👌

@joshdholtz Sure! Sorry it looks like a redacted FBI file... XD

@trevor-e Thank you, kind sir! Will look into this today 👀  Is that a complete list of languages you are using? We have a hunch it might be related to a change/addition/removal of a language on Apple's side.

Here is the full list of locales we support:

@trevor-e You are the real MPV here 🏆  I will be working on this today. Thanks for providing that data for me to test with 🙌

@trevor-e Two issues going on!

Languages use a - (not a _). So none of your languages will be seen as valid.
Some of your folders are not actually support language codes which means they will get skipped by deliver. Supported language codes can be seen here -
https://github.com/fastlane/fastlane/blob/master/fastlane_core/lib/fastlane_core/languages.rb

So... I am making a change where an error will get raised for unsupported languages and shown in the console so you will know which ones to fix/remove 👌  Hoping to get this out today/soon

@joshdholtz Thanks for the investigation! Better error reporting would be much appreciated. On our end it looks like we changed snapshot languages to be:
languages: [
                ["zh-Hans", "zh_CN"],
                ["zh-Hant", "zh_CN"],
                ["da",      "da_DK"],
                ["de",      "de_DE"],
                ["el",      "el_GR"],
                ["en-CA",   "en_CA"],
                ["en-GB",   "en_GB"],
                ["en",      "en_US"],
                ["es",      "es_ES"],
                ["es-419",  "es_MX"],
                ["fi",      "fi_FI"],
                ["fr-CA",   "fr_CA"],
                ["fr",      "fr_FR"],
                ["id",      "id_ID"],
                ["it",      "it_IT"],
                ["ja",      "ja_JP"],
                ["ko",      "ko_KR"],
                ["nl",      "nl_NL"],
                ["nb",      "nb_NO"],
                ["pt",      "pt_BR"],
                ["pt-PT",   "pt_PT"],
                ["ru",      "ru_RU"],
                ["sv",      "sv_SE"],
                ["tr",      "tr_TR"],
                ["th",      "th_TH"]
            ],

You can see we're using the hyphen format for the first language arguments. From the screengrab README it gives this example:
languages([
  "en-US",
  "de-DE",
  "es-ES",
  ["pt", "pt_BR"] # Portuguese with Brazilian locale
])

which leads me to believe that we're using it correctly. Is screengrab creating the wrong directory name?

@joshdholtz Not an expert in Ruby or the fastlane codebase, but looks like this might be the problem:
https://github.com/fastlane/fastlane/blob/master/snapshot/lib/snapshot/runner.rb#L213
snapshot is preferring locale over language for creating the directory name.

@trevor-e Huh, interesting... I will add that to my list to look into as well 🤔  Hopefully this information helps you get moving in the meantime 🚀

Is this issue similar to https://github.com/fastlane/fastlane/issues/9304 ?

Hello @fastlane-bot 😊 This needs to stay open. I WILL be fixing this one soon I swear 😉

I have a similar issue: screenshots are fine, but some of them are missing by delivery to ITC .
My problematic  languages are defined in snapfile like this: "it-IT", "ru-RU" and the folder names for the generated screenshots have the same names, which causes the issue, I guess.
When I manually rename folders to "it"  and "ru" everything works fine again and all screenshots can be uploaded. So the correct folder names for Russian and Italian are "ru" and "it".
I tried the other format like: ["it", "it_IT"], ["ru", "ru_RU"], it works fine for screenshots, but again, the folder names are invalid.
@trevor-e , I see you got the same incorrect folder names. Replace the (_) with (-) and use "it" instead of "it_IT" (the same for "ru_RU"). Also, don't use the array format if not necessary e.g. use
"nl-NL",
"de-DE",
"en-US", ...
instead of
["nl", "nl_NL"],
["de", "de-DE"],
["en",      "en_US"], ... .
These changes should fix your problem.
Anyways, since we use fastlane, there should be a better solution, than changing folder names manually.
I guess, there is a bug in the code: so instead of naming the folders by the second parameter, which indicates the region, snapshot should  name the folders by the first argument, which shows the language.
Unfortunately I'm not a ruby expert to test it myself. If someone could check it please... @KrauseFx

Hey @StefaniOS thanks for reporting this. It would help to submit new issues instead of commenting, as this way it's easier for us to manage notifications, and have a publicly visible discussion 👍 Thanks


fumadocs-mdx -> content-collections

Notes:

content-collections uses mdx-bundler, which is not very import-friendly, so I had to remove all imports in MDX files and handle them through <MDXContent components={{...}}> whitelist
everything else works as expected, for now

TODO:

[x] figure out how to handle basicPrompt (it's broken again, because of imports)
[x] provide a separate collection for API docs, get rid of MDX generation
[x] move content to a separate package to reuse it in AI

App looks fine now. Will review some parts of the code later, when I work in these areas, but I expect it to broadly be okay now.


gtfs-flex-realtime

Is there any plans for gtfs-flex-realtime?  I could see dynamic scheduling needing to modify the static data for on-demand transit solutions.

great question @mpaine-act
In the GTFS-flex v2 draft which should supplant the current repo very soon, there is a GTFS-BookingTransactions spec extension that suggests the format of the real-time updates for on-demand services.
It is somewhat more "experimental" as there are more questions about the degree to which such APIs should be fully standardized, and whether they should fit into the framework of static flex fields like the BookingTransactions spec does. Your feedback would be appreciated.


Cannot get --setting to work (to enable CORS)

I can't seem to get --setting to work for my script, or perhaps I don't understand how it works. Is it supposed to be a collection of settings like the ones for the PhantomJS command line (as documented here?)
I'm trying to allow my test script to run cross-domain (CORS) requests as part of my test. The options I think I need are --web-security=false and --local-to-remote-url-access=true but no permutations of those options passed to mocha-phantomjs seem to work. I've tried renaming the params to webSecurity and webSecurityEnabled but it's just not working.
If I modify mocha-phantomjs bin to adjust spawnArgs, I get some different results, but it breaks mocha-phantomjs.coffee since it's expecting a specific set of params.
Thanks!

so how are should --setting be used? README doesn't say and here nobody gave any explanation


failed to read byte from socket MQTT::ProtocolException

I keep getting the following issue when I try to run the example code:
/Users/rolandjitsu/Projects/Pulsr/Client/vendor/bundle/gems/mqtt-0.2.0/lib/mqtt/packet.rb:271:in `read_byte': Failed to read byte from socket (MQTT::ProtocolException)
from /Users/rolandjitsu/Projects/Pulsr/Client/vendor/bundle/gems/mqtt-0.2.0/lib/mqtt/packet.rb:32:in `read'
from /Users/rolandjitsu/Projects/Pulsr/Client/vendor/bundle/gems/mqtt-0.2.0/lib/mqtt/client.rb:440:in `receive_packet'
from /Users/rolandjitsu/Projects/Pulsr/Client/vendor/bundle/gems/mqtt-0.2.0/lib/mqtt/client.rb:272:in `block in connect'

I can successfully subscribe and publish with the MQTTKit Objective-C implementation of the mosquito lib. But when I run the ruby code, I can see on my device that it's actually trying to publish something (instead of subscribing) and it fails afterwards.
All I am doing is:
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __FILE__)
ENV['RACK_ENV'] ||= 'development'

require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
Bundler.require :default, ENV['RACK_ENV'].to_sym

# Subscribe example
MQTT::Client.connect(:remote_host => 'iot.eclipse.org', :client_id => 'FBF68BA8') do |client|

	client.get('/pulsr') do |topic, message|
		puts "#{topic}: #{message}"
	end

end

hi please, you help me
I have same problem with a mqtt client but not  happen with amqp client, I use a broker rabbitmq, this can to work with two protocols.
More information:
mqtt  => port : 1883
amqp => port 5672
thanks.. :+1:

The code mqtt client :
require "mqtt"
c = MQTT::Client.connect(
host: '<IP_ADDRESS>',
port: 1883,
username: "guest",
password: "guest")
loop do
m = "Message mqtt sended @ #{Time.now.to_i} "
c.publish("builds", m)
puts "=> Published #{m}"
sleep 0.2
end

This issue is closed, please open a new one.
I will also need more information and example code if I am to help you.


Add fetchInfo into doc

Current on-line doc does not include any info about fetchInfo property, and it's very confused.

@NumminorihSF thanks your contribution


add formula for stable samba 4.1.14

If this builds and works consistently now, the samba formula can be upgraded; the main formula was only kept to samba3 because samba4 wouldn't build properly on OS X for a long time.

https://github.com/Homebrew/homebrew/pull/35664#issuecomment-69528197


Website not working.

[error] Unable to deobfuscate: SyntaxError: Unexpected token 'u', "upstream r"... is not valid JSON
[error] Unable to deobfuscate: SyntaxError: Unexpected token 's', "stream timeout" is not valid JSON

Restarted, thanks.


Documentation: client constructor hostname and port

The client Horizon model has a constructor that takes an object of option keys and values, one of which is host. It is not apparent from the docs here that the host option is a string that includes the port number if applicable. Perhaps providing an example or two there such as 'host':'localhost:8181' would be more helpful, as I had to dig in to the source to find the constructor of the Horizon object.
I bring this up because I'm developing my web app and using BrowserSync, which serves the static files on port 5555, for example. I'm also using horizon on 8181, and I need to override the default port that Horizon client tries to connect to (in this case, the default was port 5555).
Thanks!

Thanks for the feedback @ejsuncy . I moved your suggestion to the special documentation issue tracker: https://github.com/rethinkdb/horizon-docs/issues/107


Add computer vision features

After mail exchanges with an user of the library, it appear it would be nice to add access to the computer vision (species suggestion based on a picture) to pyinaturalist.
After having a look at the source code and what the webapp does, we discovered two undocumented endpoints in the Node API:
https://github.com/inaturalist/iNaturalistAPI/blob/5b3b6d4a588f5bf68259467fc37809f6aa2371ac/lib/inaturalist_api.js#L268-L276

score_observation is used by the webapp when asking suggestions for an already existing observation.
I guess score_image is even more interesting and allows to score an uploaded images, without needing an iNaturalist observation. No clue of how to use it (image upload), so we have to experiment a bit.

Is the fact that's it is currently undocumented an issue? I can imagine iNat team does not want its servers flooded by people who have no interest in the project... (but pyinaturalist is probably obscure enough to avoid this). Also, maybe this API is considered semi-private and therefore change frequently?

FWIW, any undocumented APIs could be changed or removed at any time

@pleary : yep, fair enough!

According to this integration test: https://github.com/inaturalist/iNaturalistAPI/blob/2808a5da0be1d7163cfe7ca19e99e9a8fc31f476/test/integration/v1/computervision.js#L11
The computervision/score_image endpoint accepts a multipart POST request to upload an image file.
I haven't tested that out yet, but if that does work, out of courtesy to the iNat servers it may be worthwhile to downscale the image client-side (for example, using pillow), or at least set a max filesize, before uploading.

In this issue: https://github.com/inaturalist/iNaturalistAPI/issues/193, kueda mentions that "The computer vision endpoints are not public because there are a number of ways we think they could be misused". Based on that, I'm going to close this issue. It can be reopened if/when those endpoints are added to the public API.


Consider exclude_none in computed_field serialization

Related issue: https://github.com/pydantic/pydantic/issues/6549

please review

I can confirm that the model_dump_json(exclude_none=True) case is not resolved yet as of latest pydantic version (2.4.2).
This behaviour can easily be replicated with the following code:
class Model(BaseModel):
    x: int
    y: int

    @computed_field
    def sum(self) -> int:
        return self.x + self.y

    @computed_field
    def none(self) -> None:
        return None

m = Model(x=1, y=2)
print(
    m.model_dump(exclude_none=True),
    m.model_dump_json(exclude_none=True),
    sep='\n'
)

# {'x': 1, 'y': 2, 'sum': 3}
# {"x":1,"y":2,"sum":3,"none":null}

@enricotagliani I can confirm this reproduces in 2.5.3 still, however I cannot reproduce on main, so I believe your case will be fixed on 2.6.0.

I can still reproduce it with 2.14.6. Is there any kind of workaround for that?


About resnet50 weights for vcoco dataset

Thank you very much for your excellent work and open source your code. I would like to ask you which is the pre-trained weight of resnet50 for vcoco dataset

The pre-trained weight of resnet50 for vcoco dataset can be download here. You can start fine-tuning on vcoco with the following commands.
python ./tools/convert_parameters.py \
        --finetune_model gen \
        --load_path params/dphoi_res50_3layers.pth \
        --save_path params/dphoi_res50_gen_vcoco.pth \
        --dataset vcoco \
        --num_queries 64
sh ./scripts/finetune/gen-vlkt/train_vcoco.sh

Thanks for your reply, is there any VCOCO pre-trained weights for two-stage method (such as upt)?


Add out-of-process JIT support

This change adds support for hosts to optionally supply chakra with an external process (initialized with JsInitializeJITServer) to act as a JIT Server. A JIT server supports running any number of Chakra runtime clients.
The basic idea is that we have separated the JIT and runtime via an RPC interface, which is called in place of Func::CodeGen (when out-of-process JIT is enabled).
The CodeGen interface takes a workitem datastructure, containing all the information necessary to JIT a function (bytecode, profile data, obj typespec info, etc.), and addresses of ScriptContext and ThreadContext specific data which live on the server.
These structures are initialized via RPC whenever the first workitem is created for a context. This lifetime of these data structures is maintained by the runtime. When a ThreadContext or ScriptContext is freed, it requests the server to free their respective datastructures as well.
Code pages are allocated and written to with VirtualAllocEx/WriteProcessMemory, and the CustomHeap for code pages is maintained by the server (it lives off of the ThreadContext datastructure).
When the JIT wants to heap allocate some data for the code to reference, we allocate it on the JIT process and copy it to a buffer when returning back from the codegen call. The JIT code references the data as an offset from the base of the buffer, who's address is on the entrypoint. Any allocated structures with pointer fields have an associated fixup function that gets called after RPC returns.
Also, note that in ChakraCore this is currently only available using testhooks.

@dotnet-bot test this please

I ask anyone who is interested to please help with this review. But there are a few areas which had the most changes that I believe deserve specific review:
@Yongqu Can you review the RPC/midl code?
@LouisLaf Can you review the overall JIT interface?
@rajatd @abchatra Can you review inlining changes?
@satheeshravi Can you review encoder changes?
@curtisman @digitalinfinity Can you review allocator changes?

@MikeHolman Can you share some numbers about overhead of using the JIT server?

 As for the regressions, is there anything we can tune in way we do OOP JIT that could recover those losses or are these going to be unrecoverable regressions in favor of the improved security?

Is there any perf impact from the previous version when these changes are in the code but OOP JIT is not turned on?

@dilijev The improvement in Richards at least has consistently showed up for months. Haven't looked much at others. My working theory is that worse JIT throughput has us rejit something slower, where the old code was better. Some of these losses are still recoverable, however this is within the realm of acceptable loss.
Thus far, we haven't seen any perf difference with oop jit disabled vs. master. There is some possibility of working set regression due to more data being copied at workitem creation, however in local traces we haven't seen this as an issue. But this is still pending verification from perf lab runs.

@MikeHolman Thanks for explaining the improvements. When you say consistently showing up for months, I assume you mean in this branch. It's interesting to see that OOP JIT could potentially improve performance in some scenarios.
I agree that the amount of the regressions doesn't seem especially concerning given the nature of this PR.

@MikeHolman I see that you needed to fix NoJIT build previously.  Think it's a good idea to ask dotnet-bot for the full set those builds to show up on this PR to make sure they are all good?
https://github.com/Microsoft/ChakraCore/wiki/Jenkins-Build-Triggers#disablejit-builds

@dotnet-bot test nojit tests please

Review status: 0 of 296 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

bin/ch/ch.cpp, line 671 at r1 (raw file):

    if (i == argc)
        return false;

Please put braces around body of if-statement

Comments from Reviewable

@dotnet-bot test nojit tests

At suggestion of @EdMaurer I will be merging this in today to start getting test coverage. However, I will still very much appreciate CR feedback.

@dotnet-bot test Ubuntu ubuntu_linux_release_static please

That's one big PR 😲 🥇


Problem with sql_chain and quotation marks

Hi,
I observed an issue with sql_chain and quotation marks.
The SQL that was send had quotation marks around and triggered an error in the DB.
This is the DB engine:
from sqlalchemy import create_engine
engine = create_engine("sqlite:///:memory:")

The solution is very simple. Just detect and remove quotation marks from
the beginning and the end of the generated SQL statement.
What do you think?
PS: I can not replicate the error at the moment. So can not not provide any concrete error message. Sorry.
PPS: see code to reproduce and error message below

Here is the code to reproduce. It is taken from https://github.com/pinecone-io/examples/blob/master/generation/langchain/handbook/06-langchain-agents.ipynb
from getpass import getpass
OPENAI_API_KEY = getpass()

##

from langchain import OpenAI
llm = OpenAI(
    openai_api_key=OPENAI_API_KEY,
    temperature=0
)

##

from langchain.callbacks import get_openai_callback
def count_tokens(agent, query):
    with get_openai_callback() as cb:
        result = agent(query)
        print(f'Spent a total of {cb.total_tokens} tokens')

    return result

##

from sqlalchemy import MetaData
metadata_obj = MetaData()

##

from sqlalchemy import Column, Integer, String, Table, Date, Float
stocks = Table(
    "stocks",
    metadata_obj,
    Column("obs_id", Integer, primary_key=True),
    Column("stock_ticker", String(4), nullable=False),
    Column("price", Float, nullable=False),
    Column("date", Date, nullable=False),
)

##

from sqlalchemy import create_engine
engine = create_engine("sqlite:///:memory:")
metadata_obj.create_all(engine)

##

from datetime import datetime
observations = [
    [1, 'ABC', 200, datetime(2023, 1, 1)],
    [2, 'ABC', 208, datetime(2023, 1, 2)],
    [3, 'ABC', 232, datetime(2023, 1, 3)],
    [4, 'ABC', 225, datetime(2023, 1, 4)],
    [5, 'ABC', 226, datetime(2023, 1, 5)],
    [6, 'XYZ', 810, datetime(2023, 1, 1)],
    [7, 'XYZ', 803, datetime(2023, 1, 2)],
    [8, 'XYZ', 798, datetime(2023, 1, 3)],
    [9, 'XYZ', 795, datetime(2023, 1, 4)],
    [10, 'XYZ', 791, datetime(2023, 1, 5)],
]

##

from sqlalchemy import insert
def insert_obs(obs):
    stmt = insert(stocks).values(
    obs_id=obs[0],
    stock_ticker=obs[1],
    price=obs[2],
    date=obs[3]
    )
    with engine.begin() as conn:
        conn.execute(stmt)

##

for obs in observations:
    insert_obs(obs)

##

from langchain.sql_database import SQLDatabase
from langchain.chains import SQLDatabaseChain
db = SQLDatabase(engine)
sql_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)

##

from langchain.agents import Tool
sql_tool = Tool(
    name='Stock DB',
    func=sql_chain.run,
    description="Useful for when you need to answer questions about stocks " \
                "and their prices."
)

##

from langchain.agents import load_tools
tools = load_tools(
    ["llm-math"],
    llm=llm
)

##

tools.append(sql_tool)

##

from langchain.agents import initialize_agent
zero_shot_agent = initialize_agent(
    agent="zero-shot-react-description",
    tools=tools,
    llm=llm,
    verbose=True,
    max_iterations=3,
)

##

result = count_tokens(
    zero_shot_agent,
    "What is the multiplication of the ratio between stock prices for 'ABC' and 'XYZ' in January 3rd and the ratio between the same stock prices in January the 4th?"
)

The error message is:
(langchain_dev) mike@MacBook-Air-Philip:~/code/git/langchain$ /Users/mike/miniconda3/envs/langchain_dev/bin/python /Users/mike/code/git/langchain/own_tests/i18n_nc.py
Password:

> Entering new AgentExecutor chain...
 I need to compare the stock prices of 'ABC' and 'XYZ' on two different days
Action: Stock DB
Action Input: Stock prices of 'ABC' and 'XYZ' on January 3rd and January 4th

> Entering new SQLDatabaseChain chain...
Stock prices of 'ABC' and 'XYZ' on January 3rd and January 4th
SQLQuery: "SELECT stock_ticker, price, date FROM stocks WHERE (stock_ticker = 'ABC' OR stock_ticker = 'XYZ') AND (date = '2023-01-03' OR date = '2023-01-04') LIMIT 5"Traceback (most recent call last):
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: near ""SELECT stock_ticker, price, date FROM stocks WHERE (stock_ticker = 'ABC' OR stock_ticker = 'XYZ') AND (date = '2023-01-03' OR date = '2023-01-04') LIMIT 5"": syntax error

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/mike/code/git/langchain/own_tests/i18n_nc.py", line 121, in <module>
    result = count_tokens(
  File "/Users/mike/code/git/langchain/own_tests/i18n_nc.py", line 17, in count_tokens
    result = agent(query)
  File "/Users/mike/code/git/langchain/langchain/chains/base.py", line 116, in __call__
    raise e
  File "/Users/mike/code/git/langchain/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
  File "/Users/mike/code/git/langchain/langchain/agents/agent.py", line 792, in _call
    next_step_output = self._take_next_step(
  File "/Users/mike/code/git/langchain/langchain/agents/agent.py", line 695, in _take_next_step
    observation = tool.run(
  File "/Users/mike/code/git/langchain/langchain/tools/base.py", line 107, in run
    raise e
  File "/Users/mike/code/git/langchain/langchain/tools/base.py", line 104, in run
    observation = self._run(*tool_args, **tool_kwargs)
  File "/Users/mike/code/git/langchain/langchain/agents/tools.py", line 31, in _run
    return self.func(*args, **kwargs)
  File "/Users/mike/code/git/langchain/langchain/chains/base.py", line 213, in run
    return self(args[0])[self.output_keys[0]]
  File "/Users/mike/code/git/langchain/langchain/chains/base.py", line 116, in __call__
    raise e
  File "/Users/mike/code/git/langchain/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
  File "/Users/mike/code/git/langchain/langchain/chains/sql_database/base.py", line 86, in _call
    result = self.database.run(sql_cmd)
  File "/Users/mike/code/git/langchain/langchain/sql_database.py", line 220, in run
    cursor = connection.execute(text(command))
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1380, in execute
    return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
    ret = self._execute_context(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
    self._handle_dbapi_exception(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
    util.raise_(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/Users/mike/miniconda3/envs/langchain_dev/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near ""SELECT stock_ticker, price, date FROM stocks WHERE (stock_ticker = 'ABC' OR stock_ticker = 'XYZ') AND (date = '2023-01-03' OR date = '2023-01-04') LIMIT 5"": syntax error
[SQL:  "SELECT stock_ticker, price, date FROM stocks WHERE (stock_ticker = 'ABC' OR stock_ticker = 'XYZ') AND (date = '2023-01-03' OR date = '2023-01-04') LIMIT 5"]
(Background on this error at: https://sqlalche.me/e/14/e3q8)

IMO after this line:
https://github.com/hwchase17/langchain/blob/acfd11c8e424a456227abde8df8b52a705b63024/langchain/chains/sql_database/base.py#L83
We should add a normalization that:

trims the SQL string
Checks if quotation marks are at the beginning and the end and then removed them.

Started a PR: https://github.com/hwchase17/langchain/pull/3385

For what its worth adding this into the default prompt template for a database chain worked
Only have single quotes on any sql command sent to the engine.
Hope its of some help

Duplicate of #2027

I'm not sure, but to me the problem is that the prompt template is wrong in asking for an SQL-statement with quotes. I think it is better to just not do that:
https://github.com/hwchase17/langchain/pull/4101

Facing same issue. Also, Mixed case columns is a problem on OracleDB


feat: make RequestBuilder configurable

RequestBuilder is an interface, therefore, it's designed to be extensible.
type RequestBuilder interface {
	Build(ctx context.Context, method, url string, body any, header http.Header) (*http.Request, error)
}

However, currently it's a private field of Client, which make it impossible to customize.
type Client struct {
	config ClientConfig

	requestBuilder    utils.RequestBuilder
	createFormBuilder func(io.Writer) utils.FormBuilder
}

This PR moves requestBuilder to ClientConfig, making it configurable, so that users can implement their own RequestBuilder, which is very useful in situation of adding custom request headers and injecting tracing attributes.

@WqyJh it is possible to modify requests with custom Transport in http.Client. We have a basic proxy example in our README, and here's an example for telemetry (+ entire transport implementation)
On another note, I think the biggest problem with custom request builders is that users would need to substitute full request builder logic every time:
https://github.com/sashabaranov/go-openai/blob/c84ab5f6ae8da3a78826ed2c8dc4c5cf93e30589/internal/request_builder.go#L31-L50
It might make sense to introduce instrumentation just before request is sent similar to gRPC interceptors concept. That might have better ergonomics than implementing custom HTTP transport.

Finally got time to try this solution. It's easy and works just the same. Thank you for your great idea!
Here's a short example:
var _ http.RoundTripper = (*Transport)(nil)

type Transport struct {
	rt http.RoundTripper
}

func NewTransport(rt http.RoundTripper) *Transport {
	return &Transport{rt: rt}
}

func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
	req.Header.Set("X-Custom", "true")

	return t.rt.RoundTrip(req)
}


Respond to Static Analysis Warnings

This pull request contains a series of commits that react to warnings left by various static analysis tools. It is branched off of the openssl Pull Request, available here, and is therefore dependent on that being merged. The tools used were cppcheck,  scan-build and gcc's -fanalyzer . Most of the commits are very small and mainly deal with freeing or closing memory and files if a rare error occurs (like memory allocation failure). That being said, a bug is a bug and worthy of being patched!

Explanation for the 2 rebases and 1 new commit:
Rebase 1: rebase on-top of updated main branch, (yay!)
Rebase 2: respond to comment left by @erichte-ibm
New Commit: Most recent commit (cb05426) added to hush static analysis' very minor not-really-a-bug bug


robots.txt is missing on jonrh.is

The way I have it set up right now is that the file robots.txt is only put on https://dev.jonrh.is. See the CircleCI config file. I thought that a missing robots.txt file was technically okay. However when testing http://browsershots.org/ I get a warning saying the file is missing.
https://dev.jonrh.is/robots.txt <- Exists as expected
https://jonrh.is/robots.txt <- Error 404
Tasks

[ ] Add robots.txt file on jonrh.is that allows all search bots, don't allow them on dev.jonrh.is as before.
[ ] Add a test that checks for the existence of robots.txt on both environments and make sure the content is as expected.

On second thought I think I will keep the existing behaviour, that is no robots.txt file on jonrh.is. Not sure why I took browsershots.org so seriously. It barely worked when I tried it now. After reading some comments online people seem to agree that not having a robots.txt is perfectly fine if you don't need to advise spiders of anything.


Run on multiple Ubuntu versions.

FYI - ubuntu-latest is expected to fail until #29 is merged.

Will reopen shortly....


My hosts repo

Hello there @StevenBlack and @Sinfonietta
i started my own repo
right now i have only porn and ads list
but soon i'll be adding a malware list too
https://github.com/DNDEBUG/hosts

Thank you for this Danilo @DNDEBUG.
I'll keep an eye on this for possible inclusion in the future.
Closing.


Ctrl S doesnt work and is misleading

Bug description
(this template is intended for bug reports, erase it when requesting features/enhancements)
Steps to reproduce the bug

go to piskelapp.com
draw
ctrl-s states 'successfully saved' but does not save to file system
Close browser does not prompt or mention that there are unsaved changes

Please update Ctrl-s to open file system to save file
Thanks!
Environment details

operating system:
browser (or offline application version):

Sprite details

number of frames:
sprite resolution:
session duration:

Feel free to include a screenshot of the bug, a .piskel file of the sprite or anything else that can help us investigate.

I've come across this issue while using Piskel on the browser - it works on the desktop app though. What I found after debugging was that the piskel gets saved to the indexedDB browser storage but for some reason isn't able to get it from storage.


every snippet has it's duplicate for some reason.

Discussed in https://github.com/LazyVim/LazyVim/discussions/5142

Originally posted by milkpuff December 17, 2024
I enable lazyextra coding.blink and coding.luasnip:

If disable coding.luasnip, snippets show once, but some snippet like classi raise error:
/usr/share/nvim/runtime/lua/vim/lsp/_snippet_grammar.lua:177: snippet parsing failed
I also have this issue. I use luasnip with pretty basic setup.
here is my LazyVim config

This doesn't happen with nvim-snippets, so it must be some kind of incompatibility between Luasnip and blink. It would be wiser to report this problem to blink repo. In the meantime if you want to keep using Luasnip, just use nvim-cmp instead of blink.

when I use both luasnip and nvim-cmp with nvim-snippets disabled, snippets don't work at all.
I will stick around with blink until it gets fixed I guess.

No need for re-opening any more.


ARROW-5112: [Go] implement writing IPC Arrow stream/file

Needs #4228.

PTAL @stuartcarnie @alexandreyc @nickpoorman

yeah... I don't know why the code coverage app didn't post its report...
I'll try to post mine in the coming days.

Codecov Report

Merging #4229 into master will decrease coverage by 16.21%.
The diff coverage is 68.46%.

@@             Coverage Diff             @@
##           master    #4229       +/-   ##
===========================================
- Coverage   88.04%   71.83%   -16.22%
===========================================
  Files         758       71      -687
  Lines       92803     5943    -86860
  Branches     1251        0     -1251
===========================================
- Hits        81708     4269    -77439
+ Misses      10982     1446     -9536
- Partials      113      228      +115

Impacted Files
Coverage Δ

go/arrow/internal/bitutil/bitutil.go
90.32% <0%> (-3.02%)
:arrow_down:

go/arrow/array/struct.go
81.13% <0%> (-3.19%)
:arrow_down:

go/arrow/array/binary.go
62.74% <0%> (-21.47%)
:arrow_down:

go/arrow/array/list.go
72.64% <0%> (-1.92%)
:arrow_down:

go/arrow/ipc/ipc.go
75% <100%> (+75%)
:arrow_up:

go/arrow/ipc/file_reader.go
58.14% <40%> (+58.14%)
:arrow_up:

go/arrow/array/string.go
74.6% <50%> (-1.21%)
:arrow_down:

go/arrow/ipc/reader.go
55.22% <50%> (+55.22%)
:arrow_up:

go/arrow/ipc/metadata.go
63.58% <67.91%> (+63.58%)
:arrow_up:

go/arrow/ipc/file_writer.go
69.03% <69.03%> (ø)

... and 701 more

Continue to review full report at Codecov.

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


Create a Development Project in SAP Business Application Studio

Tutorials: https://developers.sap.com/tutorials/hana-cloud-mission-trial-8.html
I have tried several times, and I always fail in the first step of the tutorial. I have enabled Cloud Foundry Environment and created a “dev” space, cf. screenshot. Then I tried to add an instance mapping to my SAP HANA Cloud database instance, cf. screenshots, but although the dialog pop-up and a notification pop-up would say it would restart the database, this does not happen. And even after restarting the database instance manually, the “Instance Mapping” section stays empty. Even when I stop the instance and try to configure the mapping in stopped state, it does not seem to accept the change. The “Instance Mapping” section stays empty. I also tried filling out the Environment Instance ID and the Environment Group (Space ID). Same result.
Consequently, when I continue the tutorial and try to configure the HDI container, it fails with error message: “Service broker error: Service broker hana-broker failed with: Can not create service instance 'HDI_Tutorial': There is no database with database_id 'dc20d757-a59f-43d6-a6d7-bb81e171dcdc' in space 'dev' within organization '4b6a72d5trial_4b6a72d5trial'. Check the database_id.”
What am I doing wrong? Thanks!
Best regards,
Thomas

FYI: I have just created a completely new database, and in the creation wizard I already specified the instance mapping. That was successful. You should update your tutorial accordingly.

I am sorry this was not working.  I was not able to reproduce the issue so hopefully this has been addressed.


Imporve initial sync using /ws/v1/fullstatedump API

Description
Currently, we rely on resource-specific APIs to fetch and sync the initial states of various objects from YuniKorn to YHS. However, YuniKorn provides a comprehensive state dump API (/ws/v1/fullstatedump) that can be utilized to retrieve the entire state in one request during the initial sync. Following improvement can be made

Reduce the number of API calls needed for the initial sync
Eliminating the need for sequential calls. For example, queue data retrieval depends on partition information, which will be managed inherently with the state dump API.

Relevant Resources in the State Dump API

Partitions
Applications (running, completed, and rejected)
Application history
Nodes
Container history
Queues

Note: The state dump API does not include nodeUtilizations, so this specific resource will still require the regular API for syncing.
Subtasks

[ ] #298
[ ] #299
[ ] #300
[ ] #301
[ ] #302
[ ] #303

Reference

YuniKorn Full State Dump API

Duplicate of #288


Add Sepedi ner corpus

Looks like the PR includes commits about many other files.
Could you create a clean branch from master, and create another PR ?

Sorry, will do that.


Node 8.0.0 doesn't support object destructuring

Support for object destructuring was added by a minor Node@8 version. In order to support Node@8, which I would say is desirable, Object.assign must be used. This is an issue for this package, but also for its dependency read-pkg.

It's expected that you upgrade minor Node.js versions. Those versions also come with important security fixes.
https://github.com/sindresorhus/meta/issues/8


[Feature request] Run shell script before configuration happens

Brief Issue Summary
When working in console I'm using shell script to source many environment variables required for configuration and build. I see there is a setting to add variables separately, but that's a long and often changing list - I'd love to be able to just pass the script name so it's run in the shell cmake-tools is working.
Expected:
Some setting like "pre-configuration commands".

Other Notes/Information
It might be worth mentioning that I'm working with SSH remote connection plugin, and cmake-tools is installed on remote machine.

This might be easily doable by augmenting the Kits schema.  Something similar is done to load environment variables for the MSVC compiler, but it's internal to the extension.

I would also like to see this functionality - I'm using CMake to build some quite old code, in which some build steps are performed in bash scripts.  Because I can't source the required rc file before calling CMake, these legacy steps crash the build.

I'd like this feature too. My particular use case, and I bet shared by many, is to activate a Conda enviroment before building, so I build with the right Python libraries (CMake itself respects activated envs as priority in FindPython).

This feature was implemented and will be released with 1.4.

CMake Tools 1.4.0 Beta is available on GitHub.
https://github.com/microsoft/vscode-cmake-tools/releases/tag/1.4.0-beta
Please try it out and let us know if you encounter any issues.

This is essential for my workflow - I have to source several scripts to set up my build environment. This option worked great! Much easier than maintaining a very long list of environment variables. Thanks for adding it!!

This fix is available in CMake Tools #1.4.0 which has been released.

I cannot see the settings in the CMake Tools configuration. I tried to set it manually using     cmake.environmentVariablesShellScript and cmake.environmentVariablesShellScriptDirectory to no avail.

From looking at the PR that introduced this functionality, it should be the "environmentSetupScript" property of a kit. Manually add that to the kit you are using, in the kits file json. Let us know how that goes.

I tried setting the environmentSetupScript property of a kit in cmake-tools-kits.json and it didn't seem to work. Will the given be script be run or "sourced". My setup script contains many environment variables, therefore i would like vscode to effectively run "source "

I tried setting the environmentSetupScript property of a kit in cmake-tools-kits.json and it didn't seem to work. Will the given be script be run or "sourced". My setup script contains many environment variables, therefore i would like vscode to effectively run "source "

I am having the same issue where this property seems to have no effect. In case it is a run instead of source, I tried making a separate script to source what I need, and though it works when I call it manually it is not called when cmake is configured.

From looking at the PR that introduced this functionality, it should be the "environmentSetupScript" property of a kit. Manually add that to the kit you are using, in the kits file json. Let us know how that goes.

Thank you! Actually, it works for me. I just edited cmake-tools-kits.json and added the following lines to enable Intel toochain:
  {
    "name": "Intel <IP_ADDRESS>1",
    "environmentSetupScript": "/opt/intel/bin/iccvars.sh intel64",
    "compilers": {
      "C": "/opt/intel/compilers_and_libraries_2019.5.281/linux/bin/intel64/icc",
      "CXX": "/opt/intel/compilers_and_libraries_2019.5.281/linux/bin/intel64/icpc",
      "Fortran": "/opt/intel/compilers_and_libraries_2019.5.281/linux/bin/intel64/ifort"
    }
  }

Then, whenever I switch to Intel <IP_ADDRESS>1 kit,  /opt/intel/bin/iccvars.sh intel64 script runs and setups the environment.

I'm developing in a remote docker container and environmentSetupScript does not work. I have the following cmake-kits.json which is successfully picked up by the extension.
[
    {
        "name": "gcc7 setup environment",
        "environmentSetupScript": "export PYTHONPATH=/root/",
        "compilers": {
            "C": "/usr/bin/gcc-7",
            "CXX": "/usr/bin/g++-7"
            }
    }
]

I then have a line of message(STATUS $ENV{PYTHONPATH}) in the CMakeLists.txt to verify it, but It's blank. Configure fails because of missing env vars.
I also tried putting the env vars in a .sh script and writing "environmentSetupScript": source file.sh", same issue.

@duanyutong Try
environmentSetupScript": file.sh

@jheaff1 I tried that, too. Same thing. The path I put there points to a shell script containing the following lines.
export PYTHONPATH=/opt/ros/melodic/lib/python3/dist-packages/:$PYTHONPATH
source (other_scripts.sh)
...

Still message(STATUS $ENV{PYTHONPATH}) shows nothing. message(STATUS $ENV{PATH}) indicates that the $PATH is also different from the $PATH variable in the vscode integrated terminal (default bash in my case). It seems that it would be simpler if the cmake commands can just be executed in the same kind of shell as the vscode integrated terminal.

@jheaff1 Thanks. I tried that in various ways and here are my observations.

the .sh file it points to cannot simply contain source ~/.bashrc or source $HOME/.bashrc or even the full absolute path; it has to contain the environment variable definitions itself

I can confirm that it cannot source an external file.
The feature would be essential to integrate the Intel OneApi Toolkit since they provide a script that must be sourced and would be very annoying to rewrite.
https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-base-linux/top/before-you-begin.html#before-you-begin_GUID-338EB548-7DB6-410E-B4BF-E65C017389C4

In my case the setup script must be sourced even before any attempt to run CMake. The CMake version installed on the remote is very old and not relevant - only the one set up by the script is. (Same is true for git and Python - only after sourcing the setup script they are of the correct version).
My manual process is:
cd <project-dir>
source setup.sh
cd build
cmake ..., make ..., etc.

Same here, need to . /opt/ros/melodic/setup.bash to get the ROS1 env setup right before the cmake .. call. Or else:
[cmake] ImportError: No module named catkin.environment_cache

I'm having issues with the parsing of environment variables. In my case the output of printenv contains these two lines
BASH_FUNC_module()=() {  eval `/usr/bin/modulecmd bash $*`
}

which causes
[kit] Error parsing environment variable: }
Maybe the solution to this issue should be adjusted to parse multiline environment variables, or to actually execute the shell script, rather than only importing the environment...

Can it be a custom command to run before build?
For an example, I'm working remotely on the server with modules: example
Every time before any build I should source a custom script which loads modules I need for my build.
The simplest way for me would be able to call a custom script which loads those variables. But I'm not sure if "source load_script.sh" will help for a kit to build with all modules sourced.

For those who came for ROS.
...
	"cmake.configureSettings": {
		"CMAKE_PREFIX_PATH": "/opt/ros/${ROS_DISTRO}"
	},
...

Issue still persists - enable to change environment in which CMake will run the configuration. The use case is exactly as @ishipachev described - needing to load modules prior to CMake configuration.

Can confirm that     "environmentSetupScript": "source /home/pvelesko/HIPxx_env.sh", does not solve the issue.
Modules do not work and sourcing Intel OneAPI setvars.sh script fails with failing to parse variables.
Can this be reopened?
@andreeis

To be honest, I don't understand why this issue is closed?
I came here almost a one year later but now from the other side, not modules, but ROS. And it is still a problem.
I can't debug the script in VSCode as it has to source a ROS environment before running python script which relies on this ROS environment.

Ok, I sort of "solved" this issue to the point that I'm able to use VSCode to run scripts related to ROS.
I start VSCode from the same console I do sourcing of ROS environment. Thus VSCode inherits a proper ROS-aware environment and my scripts work.
But in this case I have a set environment for all launches I will do in this VSCode.
I also still don't know how it can be used to run VSCode remotely on the server with modules. Probably, the only case will be to add sourcing of modules into .bashrc and hope that when VSCode will try to connect to remote server it will also swallow all this sourcing from .bashrc
Both ways are ugly and defenitely something I would like to avoid, but at least it gave me working environment I was looking for.