OpenAI compatible API support

I noticed that the url in this crate is hardcoded, which currently only supports the official API endpoints of each AI service provider.
Would there be a plan to make the endpoint configurable? For example, allowing users to specify Azure OpenAI endpoints through configuration would greatly enhance flexibility.

@Zane-XY yes, endpoints will be configurable per adapter kind. I need to find the right way to do it (e.g., host/port v.s path ...)

@Zane-XY btw, feel free to explain your particular usecase. I will make sure it get covered.

In my use case, the service url and models are different, but the service is OpenAI compatible. Really appreciated the fast response!

@Zane-XY thanks. Is this aws bedrock / Google vertexai, or a custom service somewhere ?
Also, is it a Ollama server? (their OpenAi compatibility layer requires some custom behaviors)

It's an enterprise hosted AI service.

Ok, that's will probably be a Custom Adapter then. I will get to it, genai should support this usecase.

I'm using Jan.ai, TabbyML and LM Studio to run local models with local API server exposing an OpenAI-compatible API.
I would like to use this crate to make requests to them (also for embeddings) 🙂

Hi! + for this feature.
Basically, it would be better to just make API base URL to be a variable that can be changed in constructor.
That's what I did to use ollama (it was not genai, other project).

You can also make a mock server and test the code. IDK why and where, but you can make a mock webserver and it can give you a URL which you can supply to custom code


⚠ RPC server - Arbitrum has degraded performance

In 60445a2, RPC server - Arbitrum ($ARBITRUM_RPC_URL) experienced degraded performance:

HTTP code: 429
Response time: 321 ms

Resolved: RPC server - Arbitrum performance has improved in 69ee609 after 7 minutes.


Travis fix

Current coverage is 97.38% (diff: 87.17%)

No coverage report found for master at ed07e28.

Powered by Codecov. Last update ed07e28...f26f19e


Write tests for CopyButton component

Describe the solution you'd like
e2e and unit tests need to be written for the CopyButton.vue component (./src/components/CopyButton.vue). Please write e2e tests in a new file named CopyButton.js in ./test/e2e/specs/, and unit tests in a new file named CopyButton.specs.js in ./test/unit/specs/.
The frameworks being used are (Jest)[https://jestjs.io/] for unit testing, and the (nightwatch.js)[https://nightwatchjs.org/] for e2e testing.
Additional context
Please comment on this issue to tell us that you're interested in working on it before getting started!

I'm interested in working on this issues.

Hi @akmadian I'm an Outreachy Intern applicant, can I work on this?

Sorry, @onyijne, Priscila is already working on this issue :/


Guru Mediation Error when returning from function call

Hi Alex,
Thank you very much for your awesome work! It really makes for a better TTGO Watch 2020 ;-)
I am using your sketch as basis to control my eScooter via Bluetooth Low Energy (BLE) from my wirst.
For some strange reason my code works just fine with v0.4  but it causes Guru Mediation errros all the time in v0.5. I spent dozens and dozens of hours to hunt down the problem already but to no avail. I hope that you might have some ideas where to look at next.
Let me explain what I do:

I added a new "Scooter" menu
The menu is populated with three (on/off) toggle switches (just like the WiFi menu)
Each switch calls a function that sends a BLE command and returns a bool

Now when I trigger a BLE command by using one of the switches the Watch will call the function that sends the BLE command and I can see that the command is successfully sent and takes effect on my eScooter. I can also see that the function is competely processed  and as a last thing returns a bool (true). Now the Watch is supposed to switch back to the gui code, update the switch status and happily continue working.  However immediatly after returning the "true" the Watch will crash with a Guru Mediation error as follows:

As I mentioned the very same code works in v0.4. It somewhat feels like a timing or heap issue.
Thanks for your help in advance
Best regards
Thomas

Mmm, not a lot I can help with really because the exception happens in your new code which you haven't uploaded. The LoadProhibited exception occurs with (as you said) heap access, rouge pointer values and incorrect memory usage. ISRs must be in IRAM for example. I have also experienced similar strange behaviour when running out of standard malloc space whilst manipulating images and had to switch to ps_malloc () instead.


Instance default

When more then one instance of supported languages is needed, each instance should be able to have different default value.

Really useful!
@jed Can you merge this in and maybe publish a new release?

Hey @VaclavObornik can you rebase on the latest master revision please? I'll handle the merge and publish but there are conflicts that need to be handled first.

@florrain @jed It's been 2 years since this PR was opened. Unsure if @VaclavObornik is still paying attention or wants to deal with this.
This is an issue that I'd like fixed ASAP, so I went ahead and made a branch on my fork rebased to master and updated his commits to fix merge conflicts. Since technically by rebasing, I amended his commits, and I feel weird about that (the commits are still authored by him, but I amended them), I also created a merged (not rebased) branch. If you'd rather I PR that one, let me know.

Thanks @rhagigi I replied on the other PR, let's coordinate next steps from there.


JavaScript drum-kit

vanilla javascript project:  'javascript drum kit'

I made this project during 30 days of vanilla javascript challenge by WES BOS.
live preview link: https://agitated-mccarthy-b9d840.netlify.app/

Its Looking great!! @Abhijay007 You can go for it!!

Its Looking great!! @Abhijay007 You can go for it!!
Are you participating in crosswoc or gssoc?

Gssoc.


PDF "number of days" on schedule 1 less than it should be.

Grazing schedule number of days incorrectly calculated, should be 1 more.

@calebissharp Looks like this might be done. If so would I be correct assuming XXS?

@LisaMoore1 Correct. Sorry, forgot to add the labels.


docs: Add combine_gtfs_feeds.

This is a new tool we built to merge GTFS datasets from multiple transit agencies.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Please let me know if there are other/better places in the read_me to list the combine_gtfs_feeds package.

Thanks @stefancoe!


Create  component

Description
Select box is a form field that we use when we need from users to select one specific value from pre-defined list of values.
Visual style

Zeplin: https://zpl.io/29Dknke
Interactions

Behavior is same as in InputField, described in issue #153
Additional information

Everything inside the select is vertically centered
Select width is 100%
Space between flag and value is defined by $spaceSmall
We agreed that it may be a good idea to use same tokens for visual style as we use for InputField because the look is currently the same (and it’s planned to be the same by design)

Functional specs

If the user select some value, the color of label needs to change to a lighter shade (an exact color is defined as a token)
The opened state is default by a browser, we don’t have any custom styling in this first version
Help text should be defined as text with a possibility of React component, as it can have a custom action attached to part of it (for example, click on „Czech Republic“ will select „Czech Republic“ option)

Storybook chapters
We will have with prefix and without prefix very probably. More will be specified after we know which props we have. For now, start with playground and default.
Some inspiration
https://polaris.shopify.com/components/forms/select#navigation
http://designsystem.morningstar.com/components/forms.html#select-dropdown--1
https://www.material-ui.com/#/components/select-field
http://seek-oss.github.io/seek-style-guide/dropdown

I am not sure about which tokens to use here, I am thinking about two approaches:
1) use same tokens as for InputField (with "Input" in the name)
[plus] as both components are for forms, they all be visually affected by one set of tokens, so the maintenance should be easier
[minus] it won't be possible to change the visual look just for select or inputs. However, I don't know if that's needed currently.
2) use new tokens
[plus] we can change only select or input when we decide
[minus] maintenance can be harder as we will need to keep both sets of tokens in sync visually

Added in #219


community: let's talk Gitter

I've noticed there's no "official" gitter channel for Go, what's more - not even a "general Go room" there. Why is that so? I suggest doing this!

There's a Gophers slack: https://gophersinvite.herokuapp.com/

I don't know what Gitter is.  Assigning to Andrew to see if we want an approved channel there.

Personal opinion: Gitter is nice, but everyone already uses IRC or Slack for Go chat. I moved my project from Slack to Gitter because of the lower barrier to entry, but now I kind of regret it, since Gitter is really rough around the edges. I definitely think Slack/IRC is good for now, at least as far as "official" channels go.

I don't see a compelling reason to create another official chat room. Thanks for the suggestion, though.

@adg Let me be more specific, probably someone will watch for this little "feature" in the feature.
Personally (and maybe pity for me) I don't know what Slack is, and it's a bit unfamiliar for me. The reason I've suggested this is the fact that Gitter is easy to connect with Github, there're many repos with an "official gitter button".
It's never bad to have more coverage. More ways of communicating. Creating a room and a button doesn't require anything to maintain, but it allows more people to join in and share with the community. The audience there is huge as well. It's just like organizing meet-ups in different locations of world, though they're actually being organized by a variety of people. Well I could create a channel, but it would be like "vadimyer/go" - that's not something people might look for there.
As @mholt mentioned, it might be a "lower level" or something (I don't quite get it why), but it still a community that counts.
P.S. Personally I didn't like Slack, I didn't even know it exists. I knew Go has IRC, and I've born in the IRC era, but eh... Gitter is cool. They have a cool button which anyone can insert. And it was easy to connect to it with only Github account. Moreover, searching for "Go" there returned nothing, people are lazy todays, they probably need more ways of communicating.
But that's only my opinion after all, yeah. Thanks for considering that at least.

It's just that maintaining such a room requires moderation. We can't just let it be the wild west in there. If there were enough trusted volunteers to run the space in accordance with our code of conduct then it is something we could consider.


Persistent .meta and callbacks in Frontera backend

By carefully passing serialized callbacks from Scrapy requests to backend, persisting it, and passing back.
Solves https://github.com/scrapinghub/frontera/issues/30
BTW, I had to change the architecture of Request/Response convertors. Now each convertor should be instantiated in subclass of FrontierManagerWrapper.

@gatufo @kmike @plafl guys, please have a look!

@sibiryakov Looks good to me. I suppose trying to pickle the objects is the best we can do. Have you tried running this with a CrawlSpider? I say it because not all python objects can be automatically pickled and I wonder how often this is going to happen and I don't know what is going to happen in that case, maybe raising some exception. Anyway, raising an exception is better than silently discarding meta data so let's merge it.

@plafl Yes, I tried CrawlSpider, it works good!

Hey @plafl, this commit https://github.com/sibiryakov/crawl-frontier/commit/d7d7dd76824342c12020845df5032dc678cf62e0 overwrites your changes in PR #41. But I think fix is preserved. Please check.

@sibiryakov Don't worry, merge it. The changes in PR #41 are minimal, if there is any problem it will easy to fix.


[PAGE ISSUE]: 'Terms of Service' (_pressedKeys[event.physicalKey] == event.logicalKey)

Page URL
https://docs.flutter.dev/tos/
Page source
https://github.com/flutter/website/tree/main/src/tos/index.md
Describe the problem
Hello! I am using Korean. Why TextFormField is always makes error? It don't make problem. but it has barry long error message.
Error: Assertion failed: file:///C:/src/flutter/packages/flutter/lib/src/services/hardware_keyboard.dart:474:16
_pressedKeys[event.physicalKey] == event.logicalKey
"A KeyUpEvent is dispatched, but the state shows that the physical key is pressed on a different logical key. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in HardwareKeyboard.
로봇: 24
Expected fix
No response
Additional context
No response
I would like to fix this problem.

[ ] I will try and fix this problem on docs.flutter.dev.

Hi @ikh2005
I transferred the issue here for better support. Please provide the information indicated below so that we may verify this properly:

A completed and minimal reproducible code sample
The output of flutter doctor -v
Reproduction steps, Expected results, Actual results
Which environment did this issue happen in? (Android/iOS/Web/MacOS/Windows/Linux)

Thank you!

I'm having the same problem as this one. this problem seems to be occurring only on the web base.
Windows Desktop, Chrome Web, Edge Web, and all three cases have been tested, and it's always only happening on the Web.
Basically, after entering Korean, if you enter spaces, numbers, or other English words, it suddenly stops and you get the same error as the author said.
Exception has occurred.
Error: Assertion failed: file:///F:/Devlop/flutter/packages/flutter/lib/src/services/hardware_keyboard.dart:474:16
_pressedKeys[event.physicalKey] == event.logicalKey
"A KeyUpEvent is dispatched, but the state shows that the physical key is pressed on a different logical key. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#20a31(physicalKey: PhysicalKeyboardKey#7002c(usbHidUsage: \"0x0007002c\", debugName: \"Space\"), logicalKey: LogicalKeyboardKey#00020(keyId: \"0x00000020\", keyLabel: \" \", debugName: \"Space\"), character: null, timeStamp: 0:00:25.661099, synthesized) and the recorded logical key LogicalKeyboardKey#602a3(keyId: \"0x10000070f\", keyLabel: \"Process\", debugName: \"Process\")"

Error Code Position
  void _assertEventIsRegular(KeyEvent event) {
    assert(() {
      const String common = 'If this occurs in real application, please report this '
        'bug to Flutter. If this occurs in unit tests, please ensure that '
        "simulated events follow Flutter's event model as documented in "
        '`HardwareKeyboard`. This was the event: ';
      if (event is KeyDownEvent) {
        assert(!_pressedKeys.containsKey(event.physicalKey),
          'A ${event.runtimeType} is dispatched, but the state shows that the physical '
          'key is already pressed. $common$event');
      } else if (event is KeyRepeatEvent || event is KeyUpEvent) {
        assert(_pressedKeys.containsKey(event.physicalKey),
          'A ${event.runtimeType} is dispatched, but the state shows that the physical '
          'key is not pressed. $common$event');
        assert(_pressedKeys[event.physicalKey] == event.logicalKey, // Here <----

Based on the above picture, it occurs when other characters such as spaces or numbers are entered at the time when the cursor is still under the '트' after entering the '비트'.
The reason why you make a different example and you don't have anything to do, it just happens in the basic code.
My case is like this
Error Code Position
 // just make controller
  final TextEditingController _idController = TextEditingController();
 // and use controller in textfield.
  TextField( controller: _idController,
 // this is all..

There is nothing the user can do because it occurs within the low level of the input, even before the error occurs in the code woven by the direct programmer.
This problem has been around for quite a while, and I hope it is resolved as soon as possible.

Hi @MastProgs, sorry for responding late. Based on steps you provided and a piece of trace log, it looks similar to https://github.com/flutter/flutter/issues/126247, could you check if the complete steps and stack trace at https://github.com/flutter/flutter/issues/126247#issuecomment-1539455733 to see if that's the same issue that you are experiencing?

Hi @huycozy.
Looking at the problem you mentioned, it seems very similar.
However, in my case, it is not related to the input speed, and it will happen the same even if I type slowly.
There is no problem in the process of entering only Korean, but 100% of the cases where non-Korean characters such as spacing or numeric input occur.
However, if you reposition your mouse so that the cursor is out of focus while entering Korean, there will be no related problem if you type English, numbers, or special characters.
I think when you type in Korean, the last letter is underlined and the cursor and underline are focused, and at this point, in the case of Korean input, consonant and vowel combinations can occur in various forms.
For example, if you type 'ㄹ' even in the '가' state, you can type '갈', but the letter input may or may not be finished. When you type 'ㄱ' in the '갈' state, it becomes '갉' and it is a part where you wonder if the combination and ending of Korean letters are not done properly.
So, to summarize, if you type in a space bar, shift, English, number, etc. in the process of trying to combine the last focused Korean characters, you can guess that there will be a crash to create characters that you can't really combine.
But I'm not sure why that part only occurs in pc input situations, when I run it on the web. I don't use a mobile emulator, so I can't test other environments.
I hope it will help you solve the problem.

Thanks for your response. I also tried reproducing it again, the issue also appears if I enter text slowly as you mentioned. I think I did the same in my reproduction at #126247.
Closing this issue in favor of #126247. Please follow up on it for updates. You can leave there your comment and react an upvote to the original comment will help to raise the issue (also cc @ikh2005). Thank you!


'Unable to start the Fortran language server.'

Hi,
I installed atom on Windows 10. When I started atom, it tells me,
Unable to start the Fortran language server.

This can occur if you do not have Python installed or if it is not in your path.

Also, make sure to install fortls by running:

pip install fortran-language-server

in cmd, I did python -m pip install fortran-language-server and got Requirement already satisfied: fortran-language-server in c:\users\user\appdata\local\programs\python\python38\lib\site-packages (1.12.0)
I set python in environment variables such that I can type python in any directory.
I also got
fortls language server for Fortran unable to start

Error: spawn fortls ENOENT

'fortls' could not be spawned. Is it installed and on your path? If so please open an issue on the package spawning the process.

not sure how to fix these issues.

@gnikit  Thanks! Sorry, where to set the path in Atom?

I don't use Atom, so I don't know the specifics. I assumed that there was some way for Atom to interface with fortls but it appears I was wrong.
The simplest thing to do is to add the directory where fortls is installed to you PATH variable.
A quick Google search will give you the instructions on how to do that on Windows.

Thanks! No warning message anymore!


Check if this breaks something

https://projects.blender.org/blender/blender-addons/commit/b1fbf73a08cfb68b14bb328590a9bb6602d96916

Yes, this breaks our addon

[ ] Update Tests, because no need to check if custom normals and autosmooth is off
[ ] Import is broken, cf https://projects.blender.org/blender/blender-addons/pulls/104609#issuecomment-1049958
[ ] Export is broken too, investigation in progress

Fixed in Blender side (+updated tests here)


Automatically formatting attributes in HTML

will be formatted into

This causes ts to report an error,is there any way to forbidden it?

Currently it can't avoid, you can consider send a PR to https://github.com/Prettyhtml/prettyhtml.


Mod does not send messages from Discord to Minecraft

I have now set up the mod on my server, and as described in the wiki, also the bot on my Discord server.
The messages when the server starts/stops, players join/leave or die and also chat messages from Minecraft are transmitted on Discord to the respective channels set for this purpose.
The only problem is that messages from Discord are not displayed on the Minecraft server.
I am using version 2.2.4 of the mod on Forge 45.2.0 (Minecraft 1.19.4)
This is my config file (without private Discord data):
#General Mod Config
[general]
#Should the bot be enabled or not
enabled = true
#Should debug logging be enabled?  Whitelisting needs to be enabled on your server as well
whitelisting = false
#Should the bot be allowed to whitelist/un-whitelist players in OFFLINE mode. Whitelisting needs to be enabled on your server as well
offlinewhitelist = false
#Automatically link Minecraft and Discord Accounts when a user is whitelisted
linkedWhitelist = false
#Should only admins be allowed to whitelist players
onlyAdminsWhitelist = false
#If a role ID (or name) is defined here, it will be assigned to players when they are whitelisted
autoWhitelistRole = ""
#Modify user nickname when their accounts are linked
modifyNickname = false
#If a role ID (or name) is defined here, it will be assigned to players when their MC and Discord accounts are linked
linkedRole = ""
#Should the /discord command be enabled in game
inviteCommandEnabled = false
#Discord Invite Link used by the in-game invite command
inviteLink = ""
#Internal version control. DO NOT TOUCH!
configVersion = 25
#Config specific to the discord bot
[botConfig]
#The Token of the Bot to use. KEEP THIS PRIVATE. See https://readme.firstdarkdev.xyz/simple-discord-link/initial-setup/ to find this
botToken = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
#How quickly the bot status should update
activityUpdateInterval = 30
#If a role ID (or name) is defined here, only members with this role can use Staff Functions. Otherwise, it defaults back to admin/kick perms
staffRole = ""
#Should the bot use / commands. NOTE: THIS MAY TAKE UP TO 24 HOURS TO SHOW UP IN YOUR DISCORD
slashCommands = true
#The prefix to use for bot commands. Example: ~players. THIS HAS NO EFFECT WHEN USING SLASH COMMANDS
# - WARNING: TEXT COMMANDS HAVE BEEN DEPRECATED, USE SLASH COMMANDS INSTEAD!!
botPrefix = "~"
#Do not add Playing. A status to display on the bot. You can use %players% and %maxplayers% to show the number of players on the server
botStatus = "CS Skywars - Reimagined"
#The type of the status displayed on the bot. Valid entries are: PLAYING, STREAMING, WATCHING, LISTENING
botStatusType = "PLAYING"
#The URL that will be used when the "botStatusType" is set to "STREAMING", required to display as "streaming".
botStatusStreamingURL = "https://twitch.tv/twitch"
#Should the bot update the topic of your chat channel automatically
doTopicUpdates = true
#A topic for the Chat Relay channel. You can use %player%, %maxplayers%, %uptime% or just leave it empty.
channelTopic = "Playing CS Skywars - Reimagined with %players%/%maxplayers% people | Uptime: %uptime%"
#Config relating to the discord channels to use with the mod
[channels]
#The ID of the channel to post in and relay messages from. This is still needed, even in webhook mode
chatChannelID =<PHONE_NUMBER>598015600
#If this ID is set, event messages will be posted in this channel instead of the chat channel
eventsChannelID = 0
#If this ID is set, console messages sent after the bot started will be relayed here, and you can execute minecraft commands here
consoleChannelID = 0
#Webhook Config
[webhooks]
#Should webhook messages be used
enabled = true
#The URL of the channel webhook to use for Chat Messages
chatWebhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
#The URL of the channel webhook to use for Server Messages
eventsWebhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
#The URL of the channel webhook to use for Console Messages
consoleWebhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
#A DIRECT link to an image to use as the avatar for server messages. Also used for embeds
serverAvatar = ""
#The name to display for Server messages when using Webhooks
serverName = "Skywars"
#Chat Config
[chat]
#The type of image to use as the player icon in messages. Valid entries are: AVATAR, HEAD, BODY, COMBO
playerAvatarType = "HEAD"
#Prefix to add to Minecraft when a message is relayed from Discord. Supports MC formatting. Use %user% for the Discord Username
mcPrefix = "§e[Discord]§r %user%: "
#Should messages from bots be relayed
ignoreBots = true
#Should SERVER STARTING messages be shown
serverStarting = true
#Should SERVER STARTED messages be shown
serverStarted = true
#Should SERVER STOPPING messages be shown
serverStopping = true
#Should SERVER STOPPED messages be shown
serverStopped = true
#Should the chat be relayed
playerMessages = true
#Should Join and Leave messages be posted
joinAndLeaveMessages = true
#Should Advancement messages be posted
advancementMessages = false
#Should Death Announcements be posted
deathMessages = false
#Should Messages from the /say command be posted
sendSayCommand = true
#Should commands be posted to discord
broadcastCommands = false
#Commands that should not be broadcasted to discord
ignoredCommands = ["particle", "login"]
#Change the contents of certain event messages
[messages]
#Convert Discord to MC, and MC to Discord Formatting
formatting = true
#Should console messages be sent to the Console Channel
sendConsoleMessages = true
#Server Starting Message
serverStarting = "Server is starting"
#Server Started Message
serverStarted = "Server has started"
#Server Stopping Message
serverStopping = "Server is stopping"
#Server Stopped Message
serverStopped = "Server has stopped"
#Player Joined Message. Use %player% to display the player name
playerJoined = "%player% has joined"
#Player Left Message. Use %player% to display the player name
playerLeft = "%player% has left"
#Achievement Messages. Available variables: %player%, %title%, %description%
achievements = "%player% has made the advancement [%title%]: %description%"
#Chat Messages. Available variables: %player%, %message%
chat = "%message%"
#Command Messages. Available variables: %player%, %command%
commands = "%player% executed command: %command%"
#Should messages sent with TellRaw be sent to discord as a chat? (Experimental)
relayTellRaw = true
#Should the entire command executed be relayed to discord, or only the name of the command
relayFullCommands = false
#The message to show when someone uses /discord command. You can use %inviteurl%
inviteMessage = "Hey, check out our discord server here -> %inviteurl%"
#Change in which channel messages appear
[messageDestinations]
#Control where CHAT messages are delivered
[messageDestinations.chat]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "CHAT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Control where START/STOP messages are delivered
[messageDestinations.startStop]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "EVENT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Control where JOIN/LEAVE messages are delivered
[messageDestinations.joinLeave]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "CHAT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Control where ADVANCEMENT messages are delivered
[messageDestinations.advancements]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "EVENT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Control where DEATH messages are delivered
[messageDestinations.death]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "EVENT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Control where COMMAND messages are delivered
[messageDestinations.commands]
	#The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE
	channel = "EVENT"
	#Should the message be sent using EMBED style messages
	useEmbed = false

#Enable or Disable certain bot commands
[botCommands]
#Allow members to link their MC and Discord accounts
accountLinking = true
#Enable/Disable the Player List command
allowPlayerList = false
#Enable/Disable the Server Status command
allowServerStatus = false
#Execute Minecraft commands in Discord
[linkedCommands]
#Should linked commands be enabled
enabled = false
#Commands to be linked
commands = []
I think I found the reason for the problem myself, because the file editor shows me the following for the Discord Channel ID:

If I deactivate the webhooks, no more messages from the server are received on Discord.
Logically, the reason for this should be that the server cannot read this channel ID because it is not a valid integer. However, I wonder why it works on other servers and not on mine.
If that helps: The server is hosted by Exaroton (exaroton.com). As far as I know, they use Linux as the operating system for their servers.

Version 2.2.4 is a broken version on a lot of servers for some reason.
You will either need to downgrade to an older version, or upgrade to the new V3 beta version

I just tried it, the exact same thing happens with v2.2.2, v2.2.1, v3.0.0 and v3.0.1 as well

read this channel ID because it is not a valid integer.

The editor is right. Discord channel ID's are not integers. They are LONG. Sadly, most GUI editors are not smart enough to know this.
The fact that messages do not come through without webhooks, do indeed indicate it's an issue with the channel itself.
In your logs there should be a massive wall of text printed from SDLink if there is a permission issue with the channels you are using, which is normally the case for Discord -> MC messages not being relayed

I have checked several times that the bot has the necessary authorisations for the channel, and it does. The log does not mention any problems with permissions.
But I saw something interesting in the console when I started the server:
[JDA MainWS-WriteThread] ERROR WebSocketClient - WebSocket connection was closed and cannot be recovered due to identification issues
CloseCode[DISALLOWED_INTENTS](code=4014, meaning=Disallowed intents. Your bot might not be eligible to request a privileged intent such as GUILD_PRESENCES, MESSAGE_CONTENT, or GUILD_MEMBERS.)
I don't know exactly what it means, but maybe it has something to do with my problem

Ah, there we go.
You missed a step when creating your discord bot.
For V3: Gateway Intents
For V2: Gateway Intents
Both are pretty much the same. The docs for V3 is just more detailed

Oh god, I just missed this one switch...
And keep up your work! This mod is brilliant


suite: Allow 'git@' repo URLs

We were accidentally mangling them.
Signed-off-by: Zack Cerza<EMAIL_ADDRESS>

https://pulpito.ceph.com/zack-2022-05-27_17:42:00-fs:volumes-quincy-sec-testing-default-smithi/


Uploading a .png with transparency corrupts the image.

I have been noticing this in a couple of the latest versions.
When uploading a .png it turns the transparency black.
It seems to occur in any upload field from WhiteLabel's Logo upload field to any image uploader in Live Editor.
Using a .png through URL doesn't break the image.
I also tried to replace a corrupt image file with the original using an FTP client, but that resulted in a corrupt image still.
The screenshots below are the exact same image.
Current result uploading a .png:

Expected result uploading a .png:

Hey RogerAntonio
Which layout is this?

Hey @peter-mw
The screenshot above is from the layout below specifically:
https://github.com/RogerAntonio/weblama-template/blob/363a96e28fb675b795fbf40a1dc84c0efb609d27/modules/layouts/templates/skin-2.php#L28
But, I have the same issue when adding a .png logo in the Whitelabel settings.
The screenshot below has my logo uploaded in 1.2.9 on the LEFT.
And the exact same image uploaded in a later version on the RIGHT.

@bors-bors Hey Boris, I accidentally tagged peter in my reply to your comment (above).

investigating

fixed thanks for the report

Amazing, Thank you wizard Peter :)


fix(edge): pagination on create/edit edge jobs/groups [EE-3219]

Close EE-3219

Closes https://github.com/portainer/portainer/issues/7312


Change in CSS of about section

I want to improve it's heading font size and paragraph font-size too. And proper alignment of buttons and text.
@tushargupta1504 Please assign this task to me.

I would like to work on this issue. Could you please assign me this task

I would like to work on this issue. Could you please assign me this task


User authentication

I will have to do some sort of multi-user setup, using PHP

Tables all set up in multi-user fashion (uid column)
user.php

login
logout
register

one-use tokens to authenticate email
captcha

delete account
download account data
reset password

captcha
one-use tokens

change email
change password

Can't forget to have to verify user emails.

verification done, still need to finish change email and change password. no downloading of account data anytime soon. no deleting of account yet.


Editorial: Fixed typo in README

Fixed a possible typo in README.md:
comparible -> compatible
Previously:  using a new symbol makes IsCodeLike backwards comparible
Now:           using a new symbol makes IsCodeLike backwards compatible
If this change isn't necessary please let me know and I'll close the PR (^_^)

Thanks

Thank you for taking steps to make Js even more awesome :heart:


added Eq instances to list and dict

This request adds Eq instances for list[A] if A supports Eq and for dict[A,B] if B does so (A always does). Ord is left for another time and Eq for tuples to an uncertain future.
After spending too much time on trying to understand why I got type errors in my small test example involving map, I finally sat down with the "Cannot solve ..." message and realized that we hadn't implemented Eq for bool.
Then I had a similar experience with a dict example until I realized that we hadn't implemented Hashable for bool. So now both these are also implemented.


Support @OpenApiCallback

I am looking for the correct annotation to create a callback in the swagger using javalin
The swagger shall result in something like that
post:
tags:
- Admin
summary: Add a new call flow
operationId: addCallFlow
parameters:
- name: key
in: path
required: true
schema:
type: string
callbacks:
notificationDestination:

Ok, I've checked in sources and indeed we don't support it yet:
https://github.com/javalin/javalin-openapi/blob/feabee778d36516136d273230f4eda6b7aa0f81c/openapi-annotation-processor/src/main/kotlin/io/javalin/openapi/processor/generators/OpenApiGenerator.kt#L184-L186
I'll add when I find some time for that, but if you want to do that feel free to submit PR :)

This feature is available now in our latest snapshot build :)

sorry for the dumb question, but where are the snapshots built? and what
jar would i need to pull if i use the javalin bundle 4.6.7?
On Sun, Feb 19, 2023 at 3:57 PM dzikoysk @.***> wrote:

This feature is available now in our latest snapshot build :)
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1435996240,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPT5GI5OUPJ3KMJOA3TWYIRFJANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

Oh, this is plugin for Javalin 5.x, so unfortunately it won't work with 4.x. In general it's also not the same plugin as the one available for 4.x, because it was petty much not maintained for quite a long time and we've decided to replace it with a new approach.

Snapshots are located in maven.reposilite.com/snapshots repository, take a look on the installation guide:

https://github.com/javalin/javalin-openapi/wiki/1.-Installation

I recommend to migrate to Javalin 5.x, take a look at:

Migration guide: https://javalin.io/migration-guide-javalin-4-to-5
New OpenApi plugin config: https://github.com/javalin/javalin-openapi/wiki/2.-Setup

can't migrate to javalin 5 because of a limitation of sticking to java 8
will the snapshot work with javalin 4?
On Sun, Feb 19, 2023 at 4:28 PM dzikoysk @.***> wrote:

Snapshots are located in maven.reposilite.com/snapshots repository, take
a look on the installation guide:

https://github.com/javalin/javalin-openapi/wiki/1.-Installation

I recommend to migrate to Javalin 5.x, take a look at:

Migration guide: https://javalin.io/migration-guide-javalin-4-to-5
New OpenApi plugin config:
https://github.com/javalin/javalin-openapi/wiki/2.-Setup

—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1436003826,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPSLFNIN2NQHFJQQSD3WYIUYXANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

Unfortunately it won't work :/ It might be a good idea to reevaluate tech stack, because Java 8 is almost 9 years old and quite a lot of dependencies moved to Java 11+, such as e.g. Jetty that is the base of Javalin.

For the callbacks,
Note that the method of the callback is not necessarily identical to the
method of the API call.
On Sun, Feb 19, 2023 at 4:43 PM dzikoysk @.***> wrote:

Unfortunately it won't work :/ It might be a good idea to reevaluate tech
stack, because Java 8 is almost 9 years old and quite a lot of dependencies
moved to Java 11+, such as e.g. Jetty that is the base of Javalin.
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1436007121,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPT26WWZZHOBRGP5BNTWYIWPVANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hey
when i run my code with the SNAPSHOTs at runtime, the following class is
not resolved
Exception in thread "main" java.lang.NoClassDefFoundError:
io/javalin/openapi/plugin/OpenApiPluginConfiguration
although I believe i have all the dependencies in my project

io.javalin
javalin
5.3.2

io.javalin.community.openapi
openapi-annotation-processor
5.3.3-SNAPSHOT

io.javalin.community.openapi
javalin-openapi
5.3.3-SNAPSHOT

io.javalin.community.openapi
javalin-openapi-plugin
5.3.3-SNAPSHOT

io.javalin.community.openapi
javalin-redoc-plugin
5.3.3-SNAPSHOT

io.javalin.community.openapi
javalin-swagger-plugin
5.3.3-SNAPSHOT

io.javalin.community.openapi
openapi-annotation-processor
5.3.3-SNAPSHOT

io.javalin.community.openapi
openapi-specification
5.3.3-SNAPSHOT

On Mon, Feb 20, 2023 at 2:26 PM dzikoysk @.***> wrote:

Oh, good to know, the example I've used to cover this case used the same
method, so I thought it may work like that:
https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/callback-example.json
Anyway, I'll push a fix. Thanks :)
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1436927162,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPQLWZLNSKW4O6KKA2TWYNPIBANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

Here's an example setup for Maven project:
https://github.com/javalin/javalin-openapi/blob/main/examples/javalin-maven-java/pom.xml
OpenApiPluginConfiguration is located in javalin-openapi-plugin:

https://github.com/javalin/javalin-openapi/blob/main/javalin-plugins/javalin-openapi-plugin/src/main/kotlin/io/javalin/openapi/plugin/OpenApiConfiguration.kt#L13

Make sure your dependency is available at runtime, in IntellIJ you can check this in Maven/Gradle view:

Thanks
can't figure out why payloads are not documented with the new version. any
hint?
[image: image.png]
On Mon, Feb 20, 2023 at 4:45 PM dzikoysk @.***> wrote:

Here's an example setup for Maven project:
https://github.com/javalin/javalin-openapi/blob/main/examples/javalin-maven-java/pom.xml
OpenApiPluginConfiguration is located in javalin-openapi-plugin:

https://github.com/javalin/javalin-openapi/blob/main/javalin-plugins/javalin-openapi-plugin/src/main/kotlin/io/javalin/openapi/plugin/OpenApiConfiguration.kt#L13
Make sure your dependency is available at runtime, in IntellIJ you can
check this in Maven/Gradle view:
[image: obraz]
https://user-images.githubusercontent.com/4235722/220137227-1f5ce689-8b64-4118-bab7-2d9330f6d096.png
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1437132304,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPRIRQ2ABGB4ABAFLP3WYN7PJANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

The attached file is missing, you may need to upload it via GitHub UI. It might be also easier if you'd provide expected output, because in specification payload is referred multiple times in different schemes/parts of spec.

Ok, i think the issue is with the new jackson version and not related to
the plugin itself.
looking into it.
On Tue, Feb 21, 2023 at 10:57 AM dzikoysk @.***> wrote:

The attached file is missing, you may need to upload it via GitHub UI. It
might be also easier if you'd provide expected output, because in
specification payload is referred multiple times in different schemes/parts
of spec.
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1438088781,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPR6WCCQH2MPQJFVOY3WYR7OLANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

This plugin does not use Jackson to describe entities like the old plugin, so it should be unrelated.

if found that if the model class has getters then it's working
but if it has public variables without getters, these fields are missing
On Tue, Feb 21, 2023 at 11:01 AM dzikoysk @.***> wrote:

This plugin does not use Jackson to describe entities like the old plugin,
so it should be unrelated.
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1438097653,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPSW2M6CN3EYVXYPB6LWYR77ZANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

This is intentional behavior, because it handles by default only regular dto classes. Public fields mean you lack standardized encapsulation and as long as I recommend to change that, there's a possibility to include these properties with @OpenApiByFields annotation:

https://github.com/javalin/javalin-openapi/wiki/3.-Features#openapi-entities

Yes, it was just working in the previous version.
In addition i found that if the model class is in another jar (in a
dependency), then the annotation is not generated as well
On Tue, Feb 21, 2023 at 11:09 AM dzikoysk @.***> wrote:

This is intentional behavior, because it handles by default only regular
dto classes. Public fields mean you lack standardized encapsulation and as
long as I recommend to change that, there's a possibility to include these
properties with @OpenApiByFields annotation:

https://github.com/javalin/javalin-openapi/wiki/3.-Features#openapi-entities
—
Reply to this email directly, view it on GitHub
https://github.com/javalin/javalin-openapi/issues/156#issuecomment-1438113131,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMPYYPR7MZDX6ZIMSJGVQA3WYSA4HANCNFSM6AAAAAAU2P3L74
.
You are receiving this because you authored the thread.Message ID:
@.***>

I think fields summary and description are missing on the callback

Yes, it was just working in the previous version.

There're some differences between those plugins, that's one of them. In general it's better to keep OpenApi spec independent from serialization rules, that's why we don't use Jackson at all :)

In addition i found that if the model class is in another jar (in a
dependency), then the annotation is not generated as well

I need slightly more details about that. You should be able to use external types in your specification, even with annotations as we're keeping them even in runtime. Something you cannot do is to use @OpenApi annotation in dependency as annotation processor looks only for sources from current project.

I think fields summary and description are missing on the callback

I've missed that as I didn't find it in examples in OpenApi spec & repo, but I see some people use in their examples (especially summary). I'll add both of them to the annotation, thanks :)


forest error are all NaN

I have encountered this warning message when executing forestci.random_forest_error(regressor, x_train, x_test)
RuntimeWarning: invalid value encountered in true_divide g_eta_main = g_eta_raw / sum(g_eta_raw)

and the results are
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan])

Is it something related to zero division?

I encounter the same probrem.

I am having the same problem, as well.

I am having the same problem, as well.

fwiw my data has categorical features, which from a cursory perusal of the code I think might have played a role in this error.

I had the same issue with a RandomForestRegressor, but applying StandardScaler on the data SOLVED the issue.

Hey @danieleongari : do you want to add a note about this to the docs?

Sure, but I would like to first reproduce and isolate the problem to see where the non-scaled inputs make the problem raise. Do you have an idea of which line of code could go in overflow?
ps: consider that for this I have to wait for some free time to dedicate, don't expect it soon :-)

In my testing if I use the following sample generator
def func(x, noise=0.1, factor=1):
    return (np.sqrt(x[0]) + x[0]*x[1] + 2*x[1] + sum(x) + noise*np.random.normal()) * factor

y_train = np.apply_along_axis(func1d=func, axis=1, arr=X_train)
rf = RandomForestRegressor()
rf.fit(X_train, y_train)
fci.random_forest_error(
    forest=rf,
    X_train_shape=X_train.shape,
    X_test=X_train,
    inbag=None,
    calibrate=True,
    memory_constrained=False,
    memory_limit=None,
    y_output=None
)

when factor>10000 I always get
forest-confidence-interval\forestci\calibration.py:86: RuntimeWarning: overflow encountered in exp
  g_eta_raw = np.exp(np.dot(XX, eta)) * mask
forest-confidence-interval\forestci\calibration.py:102: RuntimeWarning: invalid value encountered in true_divide
  g_eta_main = g_eta_raw / sum(g_eta_raw)
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
       nan, nan, nan, nan, nan, nan, nan, nan])

This makes clear that having large absolute values in the samples leads to overflow: StandardScaler by definition helps mitigating this problem, but we should look for a more stable solution which avoids the numerical ceiling on high numbers.

@danieleongari the example data you have here works well with the updates I propse in #114 most of the time. depending on the random seed, it can sometimes raise a warning about numerical precision, but it does not fail with nan anymore.

Code to produce plots
import forestci as fci, numpy as np
from sklearn.ensemble import RandomForestRegressor
np.random.seed(0)
def func(x, noise=0.1, factor=1): # update the factor!
    return (np.sqrt(x[0]) + x[0]*x[1] + 2*x[1] + sum(x) + noise*np.random.normal()) * factor
n_features = 3
n_train_samples = 21
X_train = np.random.rand(n_train_samples, n_features)
y_train = np.apply_along_axis(func1d=func, axis=1, arr=X_train)
forest = RandomForestRegressor(random_state=0)
forest.fit(X_train, y_train)
res=fci.random_forest_error(
    forest=forest,
    X_train_shape=X_train.shape,
    X_test=X_train,
    inbag=None,
    calibrate=True,
    memory_constrained=False,
    memory_limit=None,
    y_output=None
)
print(res)

import matplotlib.pyplot as plt
import matplotlib
matplotlib.use("Agg")
plt.errorbar(y_train, forest.predict(X_train), yerr=np.sqrt(res), fmt='o')
plt.xlabel("True value")
plt.ylabel("Prediction w/ std dev")
plt.savefig("fci_res.png")

# Code below here is a copy-and-paste from the forestci modules, but with some plotting commands intermingled
from forestci.calibration import gfit, calibrateEB, gbayes
from forestci.forestci import _centered_prediction_forest, _core_computation, _bias_correction, calc_inbag
from forestci import random_forest_error
import copy

X_train_shape = X_train.shape
X_test = X_train
memory_constrained = False
memory_limit = None
y_output = None

inbag = calc_inbag(X_train_shape[0], forest)
pred_centered = _centered_prediction_forest(forest, X_test, y_output)
n_trees = forest.n_estimators
V_IJ = _core_computation(
    X_train_shape, X_test, inbag, pred_centered, n_trees, memory_constrained, memory_limit
)
V_IJ_unbiased = _bias_correction(V_IJ, inbag, pred_centered, n_trees)

calibration_ratio = 2
n_sample = np.ceil(forest.n_estimators / calibration_ratio)
new_forest = copy.deepcopy(forest)
random_idx = np.random.permutation(len(new_forest.estimators_))[: int(n_sample)]
new_forest.estimators_ = list(np.array(new_forest.estimators_)[random_idx])
if hasattr(new_forest, "_seeds"):
    new_forest._seeds = new_forest._seeds[random_idx]

new_forest.n_estimators = int(n_sample)

results_ss = random_forest_error(
    new_forest,
    X_train_shape,
    X_test,
    calibrate=False,
    memory_constrained=memory_constrained,
    memory_limit=memory_limit,
    y_output=y_output
)

# Use this second set of variance estimates
# to estimate scale of Monte Carlo noise
sigma2_ss = np.mean((results_ss - V_IJ_unbiased) ** 2)
delta = n_sample / forest.n_estimators
sigma2 = (delta ** 2 + (1 - delta) ** 2) / (2 * (1 - delta) ** 2) * sigma2_ss

# Use Monte Carlo noise scale estimate for empirical Bayes calibration
variances = V_IJ_unbiased
assert sigma2 > 0
sigma = np.sqrt(sigma2)
eb_prior = gfit(variances, sigma)
calib_all = [gbayes(x,g_est=eb_prior,sigma=sigma) for x in variances]

fig,ax = plt.subplots()
ax.scatter(variances, calib_all)
ax.set_xlabel("Variance estimate")
ax.set_ylabel("Calibrated variance estimate")
plt.savefig("fci_calibration.png")

fig,ax = plt.subplots()
ax.hist(variances, bins='auto', alpha=0.5, label="Variance estimates (left)", density=True)
ax.hist(calib_all, bins='auto', alpha=0.5, label="Calibrated variance estimates (left)", density=True)
ax2 = ax.twinx()
ax2.plot(eb_prior[0], eb_prior[1])
ax.legend()
plt.savefig("fci_hist.png")

Running this example with my code in #114 yields, and factor=1, shows that the empirical bayes prior actually seems quite nice for this specific data. :)

Doing the same, but with code from master branch shows

indicating that the EB calibration is indeed quite broken.
With a large factor=10000, the code on master fails with NaN, and my proposed fix complains about numerical precision, but still yields a result consistent with small factor

Improved in v0.7


Add closeness_centrality app and test case of duplicated mode modification

What do these changes do?

implement closeness_centrality base on duplicated mode of networkx Graph
use closeness_centrality to test modification/copy/to_direcrted/to_undirected and subgraph in duplicated mode.
add test case of closeness_centrality

Related issue number
#318
#314

Codecov Report

Merging #336 (0a68184) into main (0525b0e) will decrease coverage by 10.86%.
The diff coverage is 84.00%.

@@             Coverage Diff             @@
##             main     #336       +/-   ##
===========================================
- Coverage   77.36%   66.50%   -10.87%
===========================================
  Files          57       55        -2
  Lines        5301     5054      -247
===========================================
- Hits         4101     3361      -740
- Misses       1200     1693      +493

Impacted Files
Coverage Δ

...ython/graphscope/analytical/app/katz_centrality.py
53.84% <ø> (ø)

python/graphscope/framework/app.py
87.01% <84.00%> (-0.80%)
:arrow_down:

python/graphscope/deploy/kubernetes/utils.py
12.38% <0.00%> (-56.67%)
:arrow_down:

python/graphscope/interactive/query.py
38.46% <0.00%> (-52.02%)
:arrow_down:

python/graphscope/deploy/kubernetes/cluster.py
25.38% <0.00%> (-50.39%)
:arrow_down:

...n/graphscope/deploy/kubernetes/resource_builder.py
30.00% <0.00%> (-21.90%)
:arrow_down:

python/graphscope/client/rpc.py
66.12% <0.00%> (-19.06%)
:arrow_down:

python/graphscope/analytical/app/triangles.py
85.71% <0.00%> (-14.29%)
:arrow_down:

python/graphscope/client/session.py
62.62% <0.00%> (-10.67%)
:arrow_down:

python/graphscope/framework/graph.py
84.11% <0.00%> (-8.12%)
:arrow_down:

... and 15 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 0525b0e...0a68184. Read the comment docs.


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2336

Questions ?
Please refer to the Backport tool documentation


Ccxt Input Abstract Plugin

This PR addresses issue #22 .
This only has _process_trades() functioning. I commented out code that I'll edit later.
Basically, I just want to submit this to see if this is the architecture you were thinking and if everything looks right. If it looks good to you, I'll continue on with deposits, withdrawals, and then the implicit API.
I think I can implement pagebased pagination from the Coinbase code, but idbased might be difficult to do without a real-world example.
Let me know what you think.

The iterator is going to need to know what comes back from the exchange in order to return the next "element". So, we will need to do something like this:
pagination_detail_set: AbstractPaginationDetailSet = self.get_process_trades_pagination_detail_set(trades)
while pagination_details in pagination_detail_set:
            trades = self.__client.fetch_my_trades(
                symbol=pagination_details.symbol,
                since=pagination_details.since,
                limit=pagination_details.limit,
                params=pagination_details.parameters,
            )

     pagination_detail_set.updateIterator(trades) # This isn't possible right?

The iterator will need to know the live data coming back from the server in order to calculate the next date range. If there are more records and we hit the limit, we need to pull the window back. We will not know that information until we start pulling the data. So, is it possible to update the iterator in the middle of the iteration?

That's a really good point. I think we'll need to use the lower-level iterator API. Here's what I mean:
        pagination_detail_set: AbstractPaginationDetailSet = self.get_process_trades_pagination_detail_set()
        pagination_detail_iterator: AbstractPaginationDetailsIterator = iter(pagination_detail_set)
        try:
            while True:
            pagination_details = next(pagination_detail_iterator)
            trades = self.__client.fetch_my_trades(
                symbol=pagination_details.symbol,
                since=pagination_details.since,
                limit=pagination_details.limit,
                params=pagination_details.parameters,
            )
            pagination_detail_iterator.update_fetched_elements(trades)
        except StopIteration:
            # End of pagination details
            pass

Note that AbstractPaginationDetailSet and AbstractPaginationDetailsIterator remain as described in my previous comment, with the exception that update_fetched_elements needs to be added to AbstractPaginationDetailsIterator
Examples of this pattern in the code:

use of iter to obtain an iterator object: https://github.com/eprbell/rp2/blob/main/src/rp2/tax_engine.py#L97
use of next on the iterator and catching StopIteration: https://github.com/eprbell/rp2/blob/main/src/rp2/accounting_engine.py#L102

It looks like the failed checks are due to a server outage.

We may want to mock test_plugin_ccxt.py to avoid these problems.

I'm wondering what to name symbol in the pagination sets/iterators. Basically, we need to cycle through markets (eg. BTC/USD) for trades but codes/symbols (eg. BTC) of crypto assets for deposits/withdrawals.
What would be a good clear name? Sector, grouping?

No strong opinion: perhaps symbol or product. We can also rename it later if we think of a better name.

I have to do some cleaning, but core functionality should be available. I"m going to work on the implicit API and how to integrate that smoothly.

Hm, one more thing: it looks like CCXT may not be thread-safe (see https://github.com/ccxt/ccxt/issues/2252)
Two potential solutions:

switch from thread pool to process pool. This may be a good idea regardless, because it reduces thread safety risks in any future CCXT clients we decide to support. Doing this is trivial: instead of with ThreadPool(self.__thread_count) as pool: use with Pool(self.__thread_count) as pool: (and update the import accordingly)
nonce overriding approach (explained in the CCXT thread above)

Anyway, let's keep the parallel infrastructure in and keep exploring it: if we don't find any way of making CCXT work in parallel, we'll hardcode n_threads=1 (or remove the multithreading code), but I'm cautiously optimistic we can apply one of the above solutions successfully.

Thinking about the implicit API. Do you think it would be better if the abstract class uses dir() to find implicit functions and then cycles through them. Something like this:
implicit_api_list = [method for method in dir(ExchangePlugin) if method.startswith('__') is False and method.startswith('_implicit_']
for implicit_function in method_list:
 # make I/O call

Each implicit API function would also need a custom PaginationDetailSet and a post_processing() function that would sort the json into the corresponding transactions after it is retrieved from the exchange, but these could be implied from the end of the API function. Given a function _implicit_sapiGetAssetAssetDividend, the abstract plugin would look for _sapiGetAssetAssetDividendDetailSet and _sapiGetAssetAssetDividendPostProcessing functions to match.
Do you think this is too complicated? or should there simply be a _process_implicit_api() function that must be overridden in the inherited class? and users can decide how to handle things.
I guess another option would be to have a List of implicit functions that the abstract plugin can iterate over and the iterator and post-processor can be implied from that.

The two approaches are not mutually exclusive: I was thinking we could do the simple approach first (_process_implicit_api), to get to MVP faster. Later maybe we can explore the other option and let the subclass decide which path to take.

Ok, I added in gains. I made it a separate function from _process_implicit_api() to keep it better sorted. Also, I hope sometime in the future CCXT will implement it as one of their unified functions. I wrote a CustomDatePaginationDetailSet to handle the processing for these, but ended up not implementing it since I don't want to mess with the very delicate subscription/redemption calculation I have. I'd like to just get to an MVP as soon as I can.

I just need to add dust trades, and then I should be able to wrap this up.

OK, this is all wrapped up. Should I add something to the docs?

Great! I'll start reviewing. Yes, you can add reference to the abstract class to https://github.com/eprbell/dali-rp2/blob/main/README.dev.md#data-loader-plugin-development

I've been out of town for a few days: I'll review in the weekend.

OK, this is all wrapped up. Should I add something to the docs?

Sorry, forgot to answer this. Yes, we should have a section in the docs. Perhaps leave the existing section (which is still valid for exchanges unsupported by ccxt) and add a new one for ccxt.

I'm  a little confused about what to make private/protected and how to access it in the subclass.
Both self.__logger and self.__client are both needed in the subclasses in order to call the implicit API and log transactions. Should I keep the variables private and have _get_logger() and _get_client() functions so the subclasses can access them?
Or just have self.__logger and self.__client be protected variables? I'm not sure what the advantages of either approach is.

I'm a little confused about what to make private/protected and how to access it in the subclass.
Both self.__logger and self.__client are both needed in the subclasses in order to call the implicit API and log transactions. Should I keep the variables private and have _get_logger() and _get_client() functions so the subclasses can access them?
Or just have self.__logger and self.__client be protected variables? I'm not sure what the advantages of either approach is.

Here's the basic idea for class members:

private: visible only to the class, two leading underscores, no need to encapsulate it with a property or accessor function (i.e. _get_stuff)
protected: visible to the class and to its subclasses, one leading underscore, needs to be encapsulated with a property or an accessor function
public: visible to everybody, no leading underscores, needs to be encapsulated with a property or acccessor function.

For public/protected members the choice of property vs accessor function is a matter of preference: I tend to use properties as simple accessors and accessor functions for anything more complex (or for things that don't exist in the class state and need to be built on the fly).
I hope this helps, let me know if you have more questions.

protected: visible to the class and to its subclasses, one leading underscore, needs to be encapsulated with a property or an accessor function

So, the logger and client should just be protected right? I'm going to reuse them in the subclasses.

Yep, that sounds correct.

Could you get back to me on the questions above? re: ProcessOperationResult, Trade, exchange.has[_FETCHMYTRADES], and _to_trade`. And then, I think we are about finished.

For _process_gains() and _process_implicit_api() should these just have pass in them in subclasses if the exchange doesn't require them? or have pass in the superclass and users can override the function if necessary?

exchange.has[

Oh, sorry if I missed anything... I can't find any unresolved and unanswered questions in this PR (but Github can be a bit cumbersome with its folding of content): could you repeat the questions here?

Huh, that's strange. It lists these all unresolved for me. Here they are:

I found the comments in file view (still not in the conversation view), but your reply isn't there: did you submit your comments? In any case I'll reply here.

You commented about making Trade and ProcessOperationResult file-private:

This should be file-private and have a leading underscore: _ProcessOperationResult

However, that would make them unavailable in the subclass right? I have the subclass setup to return results from single transaction processes with this tuple to support multi-threading.

True: moot point, then.

I also use _to_trade in the subclasses to split apart the symbol into trade info that uses Trade
Also, my comment about renaming _to_trade:
I'm not that familiar with Python naming, but basically what this function is doing is parsing 3 variables into more useful information, so I think _to makes more sense. It is performing a conversion with the inputs not retrieving anything, which is what _get implies.

That's fine: it was just a suggestion and it's a matter of personal preference. Let's keep _to.

My comments on .has[]:

Should the check be inside _process_deposits? I'm thinking of the case of a subclass which may be adding functionality to _process_deposits: it would call super._process_deposits and then add its custom logic. However if the check is outside, the subclass custom logic will never be called.

Same thing applies to the other checks in the lines below.

If self.__client.has[_FETCH_DEPOSITS] returns false the CCXT subclass does not have a fetchDeposits function, so the subclass would be calling an implicit API, which should be under _process_implicit_api(), right?

Another good point. Ok, let's leave it, then.

I guess I saw these functions just covering the basic unified API and anything else needs to be covered in _process_implicit_api() or _process_gains(). What would be the use case for overriding _process_deposits?

Yeah, I was thinking the user might add implicit "deposit" APIs to their own version of _process_deposit(), but I think you're right: they would just add them to _process_implicit_api(), which is a simpler model.

Also, I don't think it is a good idea to encourage these to be overwritten since it might make mult-threading more complicated. If we know these only cover the unified API it will be easier to optimize and prevent race conditions.

So it sounds like we can ignore all of these comments and move on. I'll review everything once more and then we can merge.

Unfortunately I cannot :-(
When you look at your comments do they show up as "pending"? If so you need to submit them to make them publicly visible. Not sure what else this could be, short of a site malfunction...

Ok, now, everything should show. I have no idea how I have used Github for so long and not realized you have to submit all your comments. I have no idea what I was doing before.
Sorry about that.

Now I see it: mystery solved :-) Will take a look in the next 2-3 days (currently traveling).

I think I more or less wrapped everything up. I overrode the _client property to type it for mypy. Let me know if that is the right way to do it.

Grats! This is an important merge.

It's good to see this go through! Thanks for all the help on the differences with protected / private.


AttributeError: '_LSTMModel' object has no attribute '_get_exogenous_embedding_shape'

System information
Ubuntu 16.04
Tensorflow 1.6
Describe the problem
When I try to execute

tensorflow/tensorflow/contrib/timeseries/examples/lstm.py

the next error appears:
WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmp1pp2uy_k
Traceback (most recent call last):
  File "lstm.py", line 296, in <module>
    tf.app.run(main=main)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 124, in run
    _sys.exit(main(argv))
  File "lstm.py", line 284, in main
    all_times, predictions) = train_and_predict()
  File "lstm.py", line 219, in train_and_predict
    estimator.train(input_fn=train_input_fn, steps=training_steps)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 314, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 743, in _train_model
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 725, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/head.py", line 225, in create_estimator_spec
    model=self.model, input_statistics=input_statistics)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/state_management.py", line 147, in initialize_graph
    self._start_state = model.get_start_state()
  File "lstm.py", line 114, in get_start_state
    tf.zeros(self._get_exogenous_embedding_shape(), dtype=self.dtype),
AttributeError: '_LSTMModel' object has no attribute '_get_exogenous_embedding_shape'

Seems that the pull is coming from @gunan, @tensorflower-gardener,  authored by @allenlavoie
EDIT: If I hard-code the 'self._get_exogenous_emebedding_shape()' (line 114 in lstm.py file) to 0, I get the next error also:
Traceback (most recent call last):
  File "lstm.py", line 296, in <module>
    tf.app.run(main=main)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 124, in run
    _sys.exit(main(argv))
  File "lstm.py", line 284, in main
    all_times, predictions) = train_and_predict()
  File "lstm.py", line 219, in train_and_predict
    estimator.train(input_fn=train_input_fn, steps=training_steps)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 314, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 743, in _train_model
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 725, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/head.py", line 228, in create_estimator_spec
    return self._train_ops(features)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/head.py", line 78, in _train_ops
    self.model, features, estimator_lib.ModeKeys.TRAIN)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/state_management.py", line 93, in define_loss
    model=model, features=features, mode=mode)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/state_management.py", line 182, in _define_loss_with_saved_state
    mode=mode)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/state_management.py", line 237, in _update_cached_states
    state=looked_up_state)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/model.py", line 588, in per_step_batch_loss
    features={key: value for key, value in features.items()
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/timeseries/python/timeseries/model.py", line 296, in _process_exogenous_features
    trainable=True))
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.py", line 221, in input_from_feature_columns
    cols_to_outs=cols_to_outs)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.py", line 104, in _input_from_feature_columns
    check_feature_columns(feature_columns)
  File "/home/proto/anaconda3/envs/tensor/lib/python3.5/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.py", line 776, in check_feature_columns
    key = f.key
AttributeError: '_EmbeddingColumn' object has no attribute 'key'

Try the version from the 1.6 branch: https://github.com/tensorflow/tensorflow/blob/r1.6/tensorflow/contrib/timeseries/examples/lstm.py
Or use a nightly if you're using the example at head.

Thanks for the fast response @allenlavoie. I will be using the last branch meanwhile. Thanks.


[Travis Plugin] End to end test

An end-to-end test will make it easier to confidently make changes to the plugin in the future. Instead of having to manually verify changes in the browser, the team could simply run the tests to have at least some confidence that the plugin works.
What the test should do
Phase 1

Load the plugin in the browser
Configure authentication and other settings for a Travis project
Verify that the builds show up

Tech choices
Using the real Travis API for this purpose would probably lead to some flakey tests so it would be best to mock the Travis API with the MSW library. This is the library the backstage team plan to use for mocking (source).
Please use cypress (https://www.cypress.io/) to write and run the tests.

Hey David! I am trying now to write some tests for TravisCi and I've stuck with configuration of MSW since it needs to be injected as a Service Worker and I'm not sure how to do it in Backstage architecture

@zenway-js ok. If you have another way to mock the requests, feel free to use that.


Green Hills Compiler support for ARM Cortex M33 missing but present in M4

ports/cortex_m4 supports the Green Hills compiler (ghs) however the cortex_m33 supports ac3, gnu and iar only. Is there a plan in place to support Green Hills with the m33? Currently using the cortex_m4 but planning a transition to the m33 and would like to understand if the m33 with the ghs compiler is going to supported.
Often there is a transition from the M4 to the M33 because of trustzone supported in the M33 but not in the M4 - memory protection is supported in the M4 but not the trust zone.
Is using Green Hills compiler, probe going to be supported in the M33?

Currently using gnu and keil compiler - keil supports the newer arm development studio (gnu flag compatible) but not sure of the rest. It is a major upgrade from the Keil v5 MDK which uses armcc instead of armclang.

Hi @ascheurer - can you please contact<EMAIL_ADDRESS>in regard to the GHS compiler. We have not been regularly updating the GHS ports.
I was under the impression the armcc compiler (version 5) did not support the trustzone architectures. Our ARM port for the M33 uses ARM Compiler 6. This compiler can be used with Keil IDE (in fact, the sample project we ship uses the Keil IDE). The ARM Compiler v6 now comes with Keil IDE, see link for more: https://www2.keil.com/mdk5.

Closing for now. Feel free to email us for more info.


Filter out Chrome's internal tabs

Filter out all links beginning chrome://

@jameshibbard Seems like tabs.query() doesn't return internal tabs by default. Could you check and confirm when you have a moment, and I'll close this.

@jameshibbard Ignore that - the filter I'd added had taken effect without reloading the extension!


[Toast] Disable swipe gesture optionally

Feature request
Overview

Users cannot copy text in Toast, as Toast has swipe gesture enabled by default.
I understand that this specification is useful, since dismissing notifications with swiping is a familiar interaction for mobile users.
But most desktop users probably don't perform swiping with the mouse cursor on webpages. I think their swipe gesture is often a drag and drop to copy text.
I'd like to toggle the ability to swipe gesture with a property like disableSwipeGesture in Toast.Provider .
Examples in other libraries

React-Toastify
Who does this impact? Who is this for?

Desktop users using the mouse cursor
All users who want to copy text in Toast

Additional context

perhaps you're looking for onSwipeEnd={event => event.preventDefault()}? https://codesandbox.io/s/mystifying-stallman-svgb65?file=/src/App.js

are you looking for onSwipeEnd={event => event.preventDefault()}? https://codesandbox.io/s/mystifying-stallman-svgb65?file=/src/App.js

Thank you, @jjenzz !
I wasn't aware of that method. Also Toast.Root has user-select: none.
Definitely, if I write code the same way you showed me, Toast will be what I want.
In this case, I might as well prevent events such as onSwipeMove as well, although it might not be such a busy event.
But why are these methods not listed in the documentation?

But why are these methods not listed in the documentation?

That looks like an oversight. I'll raise a docs ticket to get that updated, thanks 👍

@jjenzz
Thank you for raising the ticket. This is helpful 👍
One more point, using onSwipeEnd is more effective for more use cases than my example of disableSwipeGesture, but using it for the case of disabling swipe gestures may be a bit confusing.
Because they have to realize that preventDefault prevent the event from being executed, and the CSS user-select: none disables the text selection.
I would prefer the docs have this example, what do you think about this?

@benoitgrelard @andy-hook thoughts? ☝

Yeah we were talking about this earlier.
I think it's either we need a dedicated example in the docs, or we do introduce a prop to disable it.

Looks good. Either way, we can disable swiping, so I will follow the decision based on Radix's design policy.
If needed, I can contribute to this issue.

Hi folks,
Any news on this?


New NPM release

I think a new NPM release should be created to include pull-request #13, since using React.PropTypes on newer versions of React is not supported anymore.
PS: thanks for this great lib :+1:

#13


Back-propping via the Attention Loss weighting

I noticed in that in src/caffe/layers/class_balanced_sigmoid_cross_entropy_attention_loss_layer.cu that the following code:
bottom_diff[i] = scale[i] * (target_value == 1 ? (1 - sigmoid_data[ i ]) : sigmoid_data[ i ]) * tmp;
suggests that the scale[i] is treated as a constant. It therefore appears to be that only the log(p) and log(1-p) terms carry a gradient and not the Beta^{(1-p)^gamma} or Beta^{p^gamma}.
Is this because it otherwise leads to numerical instability?

@nw89
No.
scale[i] is the common factor in the forward and backward formula, please refer to scale[i].

But scale is a function of sigmoid_data[i]. So as well as treating scale[i] as a constant, and adding a gradient to the log/logits terms, there should be a gradient caused by the contribution to scale[i] with the log/logit terms.


groonga: init at 6.0.7

Motivation for this change
Add the Groonga search engine and one of its dependency.
Things done

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

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

I verified both licenses, compiled and executed groonga.

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Thanks for merging!


Merge release to master

Manual merge required due to changes to QuickCheckTask.kt removed on master.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

I've triggered a build for you. Click here to see all failures if there's any.


Changed host port from 80 to 4000 in get-started/part3.md

Proposed changes
The host port is set to 80, which is inconsistent with the previous tutorial and doesn't work on Windows. Changing the port to 4000 keeps consistency and works on Windows.
For reference, here is the error when attempting to run the container on port 80:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint focused_euler (079893ea98df78bf7043f86072263317be106cbb7f4a3fcde23c2ef19ad39a01): Error starting userland proxy: Bind for <IP_ADDRESS>:80: unexpected error Permission denied.
ERRO[0000] error waiting for container: context canceled

Further investigation suggests it's a port collision issue on my machine.
There is still the question of consistency between the tutorials; I've noticed that later tutorials also use port 80

Thanks, @alexjneves .


[Bug Report] Bug in get_caching_hooks when pos_slice=None

Describe the bug
If you call get_caching_hooks without specifying pos_slice (or if you set pos_slice=None), and then run the model with these hooks, an assert checking that pos_slice is not None will be triggered. Looking at how the pos_slice is handled in run_with_cache, I believe that the correct solution here is to add in a couple lines that say
if not isinstance(pos_slice, Slice):
    if isinstance(
        pos_slice, int
    ):  # slicing with an int collapses the dimension so this stops the pos dimension from collapsing
        pos_slice = [pos_slice]
    pos_slice = Slice(pos_slice)

It might also just make sense to move those lines into get_caching_hooks. Maybe this is user error on my end—I've been using get_caching_hooks and with model.hooks() to cache and intervene during the same forward pass, but let me know if I shouldn't be using get_caching_hooks for this at all.
Code example
from transformer_lens import HookedTransformer

model = HookedTransformer.from_pretrained('gpt2')
s = "This is a test sentence."

# This works
_, cache = model.run_with_cache(s)

# This doesn't
cache, hooks, _ = model.get_caching_hooks()
with model.hooks(hooks):
    model(s)

This code will break at line 545 (assert pos_slice is not None  # keep mypy happy) in hook_points.py.
System Info
Describe the characteristic of your environment:

Describe how transformer_lens was installed (pip, docker, source, ...): pip (1.17.0)
What OS are you using? (Linux, MacOS, Windows): Linux
Python version (We suppourt 3.7 -3.10 currently): Python 3.10

Additional context
Checklist

[x] I have checked that there is no similar issue in the repo (required)

Hi @hannamw,
I ran into the same issue when trying to run the "Get activations"-section
...
    with model.hooks(fwd_hooks=caching_hooks):
        _ = model(prompt)
    return cache[name]
...

of https://colab.research.google.com/drive/1x5EmvAdVmmHvOOd1jxvODj233wbvbl1U#scrollTo=2h6X8zdojKHN which is a notebook referenced in »Activation Addition: Steering Language Models Without Optimization« (see https://arxiv.org/pdf/2308.10248).
hunch I think the offending/problematic commit/line seems to be https://github.com/neelnanda-io/TransformerLens/pull/516/files#diff-85fafabc38ed61e857e7db5df426fe1696f7a1dbe3a9c532ca8dff4718d0193dR566.
ℹ It's kinda my first day at work here, so I am not sure how to best fix this 😇. I'm just getting started with mech interp as part of my AI Safety Fundamentals Project.

Thanks for confirming you're seeing this issue too; it's good to know that I'm not the only one!
With respect to the cause of this issue, that assertion is indeed the direct cause of the failure. That said, even if it is removed, the code will fail, as the line below (resid_stream = pos_slice.apply(resid_stream, dim=pos_dim)) assumes that pos_slice has an apply method; if pos_slice is None, it will not.
I can make a PR soon to fix this issue.

Fixed by #578


Is and example of Slug style routing where it's typical to have an article name as part of the URL.

Is and example of Slug style routing where it's typical to have an article name as part of the URL.
should be replaced with
Is an example of Slug style routing where it's typical to have an article name as part of the URL.

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

ID: 8ee6ad2f-1667-8d5c-1f36-9d0511e3720f
Version Independent ID: 7838ccec-c8e8-9baa-2b3e-220b2af5fc58
Content: Routing to controller actions in ASP.NET Core
Content Source: aspnetcore/mvc/controllers/routing.md
Product: aspnet-core
Technology: aspnetcore-mvc
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@serpent5

@Rick-Anderson Is it OK to fix this and https://github.com/dotnet/AspNetCore.Docs/issues/19311 as part of the same PR, or do you prefer for them to be two separate PRs?

Your call, either way.


Issue verifying uploads on mainnet beta

Hi, I recieve the following callstack when trying to verify my uploads,, not too sure where to go:
PS C:\Users\Taine> ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts verify -k .config/solana/devnet.json
wallet public key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(node:7896) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'program' of undefined
at C:\Users\Taine\metaplex\js\packages\cli\src\candy-machine-cli.ts:212:54
at step (C:\Users\Taine\metaplex\js\packages\cli\src\candy-machine-cli.ts:53:23)
at Object.next (C:\Users\Taine\metaplex\js\packages\cli\src\candy-machine-cli.ts:34:53)
at fulfilled (C:\Users\Taine\metaplex\js\packages\cli\src\candy-machine-cli.ts:25:58)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:7896) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:7896) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

This is unrelated to this repo. You can find support for metaplex in their discord.


Update check-config.sh to include modules for FTP/TFTP

closes #22837
FTP/TFTP protocols use a different port number/channel and hence need additional nat and conntrack modules to be loaded. Since these are protocols used sparingly now it doesn't make sense probe them from libnetwork. Updating the check-config script to include the required modules.
Signed-off-by: Santhosh Manohar<EMAIL_ADDRESS>

Looking at the other conntrack configs there are:
CONFIG_NF_CONNTRACK_AMANDA=y
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_H323=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_BROADCAST=y
CONFIG_NF_CONNTRACK_NETBIOS_NS=y
CONFIG_NF_CONNTRACK_SNMP=y
CONFIG_NF_CONNTRACK_PPTP=y
CONFIG_NF_CONNTRACK_SANE=y
CONFIG_NF_CONNTRACK_SIP=y
CONFIG_NF_CONNTRACK_TFTP=y

I would guess irc, pptp, sip and h323 might be common too, might be worth adding?


feat(dora): add incident related tables

⚠ Pre Checklist

Please complete ALL items in this checklist, and remove before submitting

[x] I have read through the Contributing Documentation.
[ ] I have added relevant tests.
[ ] I have added relevant documentation.
[x] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

Summary
What does this PR do?

[x] Add new tables: incidents and incident_assignees

Records in incidents are from issues(with type = 'INCIDNET') or pull_requests(whose lables satisfy some rules, rules are still WIP)

[x] Rename table project_issue_metrics to project_incident_deployment_relationships
[x] DORA plugin: add new tasks

[x] ConvertIssuesToIncidents generates incidents from issues
[ ]  ConvertPullRequestToIncidents generates incidents from pull_requests

[ ] Update webhook, store incident directly.

Does this close any open issues?
Closes N/A
Screenshots
Include any relevant screenshots here.
Other Information
Any other information that is important to this PR.

I am not sure whether this pr should be cherry picked to release-v1.0 or not.


Reformat protocols in YAML using terms in FAIR eDNA checklist

YAML is machine readable but more human readable than XML or JSON.
This applies primarily to PCR, where current FAIR eDNA terms are:

pcr_0_1
thermocycler
amplificationReactionVolume
assay_name
assay_validation
targetTaxonomicAssay
targetTaxonomicScope
target_gene
target_subfragment
ampliconSize
pcr_primer_forward
pcr_primer_reverse
pcr_primer_name_forward
pcr_primer_name_reverse
pcr_primer_reference_forward
pcr_primer_reference_reverse
pcr_primer_vol_forward
pcr_primer_vol_reverse
pcr_primer_conc_forward
pcr_primer_conc_reverse
probeReporter
probeQuencher
probe_seq
probe_ref
probe_conc
commercial_mm
custom_mm
pcr_dna_vol
pcr_rep
nucl_acid_amp
pcr_cond
annealingTemp
pcr_cycles
pcr_analysis_software
pcr_method_additional

@sammyharding This is what we were talking about today. I think you could start with one of the PCR protocols.

I see three ways to add tags:
1. YAML Front Matter
Put all of the FAIR eDNA fields at the top (the values will appear twice in the document). Example:
---
thermocycler: Eppendorf Mastercycler Nexus Thermal Cycler
amplificationReactionVolume: 25
assay_name: ssu16sv4v5_emp
---
# My Protocol
This is where your Markdown content goes.

2. YAML in Code Blocks
Insert FAIR eDNA tags as YAML throughout document (could be used in combination with front matter) using a code block. Fewer values will be duplicated, but probably will have to duplicate some:
pcr_primer_forward: GTGYCAGCMGCCGCGGTAA
pcr_primer_reverse: CCGYCAATTYMTTTRAGTTT
pcr_primer_name_forward: 515F-Y
pcr_primer_name_reverse: 926R

3. In-line XML tags
Insert XML tags in-line so the rendered version looks the same and there's no duplication of values. In some cases, we would have longer XML tables, which are very machine readable and arguably easier to format than Markdown tables, but do not render nicely for the user. Examples:
We used thermocycler model <thermocycler>Eppendorf Mastercycler Nexus Thermal Cycler</thermocycler>.

<pcrPrimers>
    <primer>
        <pcr_primer_name_forward>515F-Y</pcr_primer_name_forward>
        <direction>forward</direction>
        < pcr_primer_forward >GTGYCAGCMGCCGCGGTAA</pcr_primer_forward >
        <sequenceWithAdapters>ACACTGACGACATGGTTCTACA xxx GTGYCAGCMGCCGCGGTAA</sequenceWithAdapters>
        <fluidigmAdapter>CS1-TS-F</fluidigmAdapter>
    </primer>
    <primer>
        <pcr_primer_name_reverse>926R</pcr_primer_name_reverse>
        <direction>reverse</direction>
        <pcr_primer_reverse>CCGYCAATTYMTTTRAGTTT</pcr_primer_reverse>
        <sequenceWithAdapters>TACGGTAGCAGAGACTTGGTCT xxx CCGYCAATTYMTTTRAGTTT</sequenceWithAdapters>
        <fluidigmAdapter>CS2-TS-R</fluidigmAdapter>
    </primer>
</pcrPrimers>

My current preference is 1 - YAML Frontmatter WITH Jekyll (or Hugo). This would allow us to have all the terms at the top in the YAML frontmatter, then reference those terms when they appear in the Markdown body. Example (I put this file in the repo but it doesn't render correctly yet):
---
title: "My Document"
author: "John Doe"
date: "2024-11-16"
---

# {{ page.title }}

Written by {{ page.author }} on {{ page.date }}.

The downside is most Markdown renderers don't support Jekyll natively. So far it looks like the best way to get the documents to render the content for viewing and printing is GitHub Pages. We could make a GitHub Pages site for our AOML protocols repository.

@sammyharding Could you pull out the FAIR eDNA terms/values for:

protocol_sampling_sterivex_ctd.md
protocol_libprep_metag_illumina.md
protocol_pcr_ssu12sv5v6_mifish.md (terms added already)

The latest versions of these protocols are in the GitHub repository. Thank you!

I added the FAIR eDNA terms/values for the 3 protocols you listed above. I committed the changes to the main branch. For the sampling and library prep protocols, I left some data fields blank because they are specific to each sample and/or I don't have the information. Let me know if I need to make changes. Thanks!

Can you change the last MIOP term in all protocols to:
publisher: NOAA's Atlantic Oceanographic and Meteorological Laboratory

Done!

Awesome, thanks. Congrats on your first commits!


fileutil: rework purge tests so they don't poll

Fixes #5966

lgtm. defer to @xiang90

lgtm after documenting purgec chan.

only failing on TestEmbed; merging


DrawingPlayer-Erase-ModifyPainting

Story: As a drawing player, I want to use eraser to modify the painting.
Acceptance Criteria:

[ ] During the drawing phase, there is an eraser icon in the white board area. The guessing player can click it to use the eraser.
[ ] When the drawing player uses eraser in a certain area on the white board, the area turns white.
[ ] The left area remains as it is and is preserved on the whiteboard.
[ ] The drawing player can switch to use the pen tool by clicking the pen icon.

Development Tasks:

[x] sopra-fs23-group-19/sopra-fs23-group-19-client#49
[x] sopra-fs23-group-19/sopra-fs23-group-19-client#50
[x] sopra-fs23-group-19/sopra-fs23-group-19-client#51

Priority: middle
Estimate: 10h

ad4efbbfbd2db2f701afe6de3d4a15ba6fb55357


[CI][JS] Missing build directory

Describe the bug, including details regarding any error messages, version, and platform.
GH-41455 added build directory argument to ci/scripts/js_{build,test}.sh but it didn't change .github/workflows/js.yml that is also use ci/scripts/js_{build,test}.sh.
So JS CI jobs are failing:
AMD64 macOS 11 NodeJS 18
Run ci/scripts/js_build.sh $(pwd)
  ci/scripts/js_build.sh $(pwd)
  shell: /bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    ARCHERY_DEBUG: 1
    ARCHERY_USE_DOCKER_CLI: 1
+ arrow_dir=/Users/runner/work/arrow/arrow
+ source_dir=/Users/runner/work/arrow/arrow/js
+ build_dir=
+ : OFF
+ rm -rf /js
+ mkdir -p
usage: mkdir [-pv] [-m mode] directory_name ...
Error: Process completed with exit code 64.

AMD64 Windows NodeJS 18
Run ci/scripts/js_build.sh $(pwd)
+ arrow_dir=/d/a/arrow/arrow
+ source_dir=/d/a/arrow/arrow/js
+ build_dir=
+ : OFF
+ rm -rf /js
+ mkdir -p
mkdir: missing operand
Try 'mkdir --help' for more information.
Error: Process completed with exit code 1.

Component(s)
Continuous Integration, JavaScript

Issue resolved by pull request 41921
https://github.com/apache/arrow/pull/41921


ExperimentLatency: handling arbitrary datasets

ExperimentLatency breaks given some datasets. For example, glue (see tests/integration/online/test_experiment_latency.py). We can solve this bug by either supporting arbitrary datasets (recommended) or raising a new unique exception if an unsupported dataset is given.

See https://github.com/keyboardAnt/distributed-speculative-inference/pull/42


Return current HDMI Port in use and Power on/off status to calling script or app.

Hi,
I have found your application immensely useful since I use my LG C2 for gaming quite a bit.  I have written several applications that call  LGTVCompanion to change power state and HDMI port before launching a game and then reverting them back after the game is over.  I have implemented a system that keeps track of what the last known state of these two items is but, in the case where someone changes the HDMI port or powers n/off the TV using the remote, it sometimes gets out of sync.  Would it be possible to implement a "GetCurrentPowerState" and "GetCurrentHDMI"?  Thanks.

For advanced scripting use cases such as yours, you might want to consider using software that is specifically designed for LGTV scripting, such as bscpylgtv which has an extensive command line and Python API.

v2.2.0 was published with the first trial/beta version of scripting support. it is not possible to query the TV for values such as the above yet, but check it out and let me know your thoughts. I'll work on extending the features when/if it sees some user adoption

hi @cmattax v3 builds on the above with additional command line parameters. Querying the TV is not in final implementation yet but check it out maybe

And finally we are here. Check out v3.1.5 which adds a command line interface in LGTVcli.exe to do what you want


Error Handling for File Upload

fixed #32 Error Handling for File Upload
a demo:
https://github.com/user-attachments/assets/c5677951-9eae-48f1-b103-53a9cad24e7e

Please resolve the merge conflicts

@vishanurag please check


Updated Hindi books resources

Added some blog links and pdf for C, Python, Java, PHP, Linux and Hindawi Project
What does this PR do?
It adds resources and Improve repo
For resources
Description
Why is this valuable (or not)?
It is valuable for hindi language users to learn programming in their native language.
How do we know it's really free?
The pdfs and blog links are publicly available. Maintainers can verify themeselve with simple google search.
For book lists, is it a book? For course lists, is it a course? etc.
Yeah there are some free pdfs and courses with proper indexed resources.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

I dont understand whats wrong with CI checks.
I followed existing layout of file.
If anyone knows how to fix CI checks let me know.

Be sure to check the free-programming-books-lint output for linter errors. Alphabetical order and spacing are the most common problems.
don't need anchors unless topic has + in it, or needs disambiguation. See other lists.

Be sure to check the free-programming-books-lint output for linter errors. Alphabetical order and spacing are the most common problems. don't need anchors unless topic has + in it, or needs disambiguation. See other lists.

Yes, I have done that and it look like to me all the checks have passed now.

Thanks, and welcome to free-programming-books!

Thanks @eshellman.
Is hactober fest over yet.
can you add hacktoberfest-accepted label to PR if you find fitted to it.