code: def check_update(parent, force=False):
      if not force and not check_date():
          return
      try:
          response = requests.get(
              "https://api.github.com/repos/cellprofiler/cellprofiler/releases/latest",
              timeout=0.25,
          )
      except:
          response = False
          message = "CellProfiler was unable to connect to GitHub to check for updates"
      if response:
          status = response.status_code
          response = response.json()
          if status == 200 and "name" in response:
              latest_version = response["name"][1:]
              if current_version < latest_version or len(
                  current_version
              ) != len(latest_version):
                  body_text = response["body"]
                  if len(body_text) > 1000:
                      body_text = body_text[:1000] + "..."
                  elif len(body_text) == 0:
                      body_text = "No information available"
                  show_message(parent, latest_version, body_text)
                  return
              else:
                  message = "CellProfiler is up-to-date"
                  if get_check_update() != "Disabled":
                      set_check_update(
                          datetime.date.today().strftime("%Y%m%d")
                      )
                  if not force:
                      return
          elif status == 200:
              message = "Unable to read data from GitHub, API may have changed."
          else:
              message = "Invalid response from GitHub server, site may be down."
      if force:
          dlg = wx.MessageDialog(
              parent,
              message,
              caption="Check for updates",
              style=wx.ICON_INFORMATION | wx.OK,
          )
          dlg.ShowModal()
      else:
          print(message)
  
file_path: CellProfiler/src/frontend/cellprofiler/gui/checkupdate.py
imports: import datetime
  import requests
  import wx
  from cellprofiler_core.preferences import get_check_update, set_check_update, get_check_update_bool
  from cellprofiler import __version__
label_desc: Use image node_id 1 for calling a global function with example usage: check_update(parent, force) without return types