Job-Ausnahme: undefinierte Methode > für nil:NilClass
prev_missing_versions_count = DiscourseUpdates.missing_versions_count || 0
json = DiscourseHub.discourse_version_check
DiscourseUpdates.last_installed_version = Discourse::VERSION::STRING
DiscourseUpdates.latest_version = json["latestVersion"]
DiscourseUpdates.critical_updates_available = json["criticalUpdates"]
DiscourseUpdates.missing_versions_count = json["missingVersionsCount"]
DiscourseUpdates.updated_at = Time.zone.now
DiscourseUpdates.missing_versions = json["versions"]
if SiteSetting.new_version_emails && json["missingVersionsCount"] > (0) &&
prev_missing_versions_count < (json["missingVersionsCount"].to_i)
message = VersionMailer.send_notice
Email::Sender.new(message, :new_version).send
end
rescue => e
raise e unless Rails.env.development? # Fail version check silently in development mode
end
end
true
end
Wenn ich dieses Attribut überprüfe:
existiert dieses Attribut nicht.
Backtrace:
/var/www/discourse/app/jobs/scheduled/version_check.rb:21:in `execute'
/var/www/discourse/app/jobs/base.rb:292:in `block (2 levels) in perform'
rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:279:in `block in perform'
/var/www/discourse/app/jobs/base.rb:275:in `each'
/var/www/discourse/app/jobs/base.rb:275:in `perform'
/var/www/discourse/app/jobs/base.rb:346:in `perform'
sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'
sidekiq-6.5.9/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:182:in `invoke'
sidekiq-6.5.9/lib/sidekiq/processor.rb:169:in `block in process'
sidekiq-6.5.9/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.5.9/lib/sidekiq/job_retry.rb:113:in `local'
sidekiq-6.5.9/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.5.9/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
sidekiq-6.5.9/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.5.9/lib/sidekiq/processor.rb:263:in `stats'
sidekiq-6.5.9/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.5.9/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.5.9/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.5.9/lib/sidekiq/job_retry.rb:80:in `global'
sidekiq-6.5.9/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.5.9/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.5.9/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.5.9/lib/sidekiq/processor.rb:168:in `process'
sidekiq-6.5.9/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.5.9/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.5.9/lib/sidekiq/component.rb:8:in `watchdog'
sidekiq-6.5.9/lib/sidekiq/component.rb:17:in `block in safe_thread'
david
(David Taylor)
7. August 2023 um 19:41
3
Danke @merefield – der Versionsprüfserver musste einige Anpassungen vornehmen, um das neue -dev-Suffix auf den Versionsnummern von tests-passed zu verstehen. Sollte jetzt funktionieren:
[7] pry(main)=> Discourse::VERSION::STRING
=> "3.2.0.beta1-dev"
[8] pry(main)=> DiscourseHub.discourse_version_check
=> {"success"=>"OK", "latestVersion"=>"3.1.0.beta7", "criticalUpdates"=>false, "missingVersionsCount"=>0}
Großartige Arbeit! Danke David!
RGJ
(Richard - Communiteq)
8. August 2023 um 21:39
5
Aber die neueste Version ist doch nicht 3.1.0 beta7, oder?
Der Server gibt auch für die neueste stabile Version immer noch 3.0.6 zurück.
david
(David Taylor)
8. August 2023 um 23:14
6
Wow ja, Sie haben absolut Recht. Das Problem mit dem Verständnis des Suffixes -dev führte dazu, dass der Server die Veröffentlichungen von letzter Woche von GitHub nicht erkannte . Danke @RGJ !
Auf einer Instanz, auf der Tests bestanden wurden:
[1] pry(main)=> DiscourseHub.discourse_version_check
=> {"success"=>"OK",
"latestVersion"=>"3.1.0.beta8",
"criticalUpdates"=>false,
"missingVersionsCount"=>1,
"versions"=>
[{"version"=>"3.1.0.beta8",
"releasedAt"=>"2023-08-01T08:59:00.000Z",
"critical"=>false,
"notes"=>"Read about the release here:\r\n\r\nhttps://meta.discourse.org/t/273443",
"url"=>"http://www.discourse.org/pricing"}]}
3.1.0 ist jetzt auch im Version-Check-Server vorhanden, daher sollte stable auch gut sein.