code: def test_release_basics(fake_issue_tracker):
      r = Release("1.0.0", repo=None, issue_tracker=fake_issue_tracker)
      assert isinstance(r, MajorRelease)
      assert r.is_released is True
      assert r.branch == "maint-1.0.0"
      assert r.tag == "apache-arrow-1.0.0"
  
      r = Release("1.1.0", repo=None, issue_tracker=fake_issue_tracker)
      assert isinstance(r, MinorRelease)
      assert r.is_released is False
      assert r.branch == "maint-1.x.x"
      assert r.tag == "apache-arrow-1.1.0"
  
      # minor releases before 1.0 are treated as major releases
      r = Release("0.17.0", repo=None, issue_tracker=fake_issue_tracker)
      assert isinstance(r, MajorRelease)
      assert r.is_released is True
      assert r.branch == "maint-0.17.0"
      assert r.tag == "apache-arrow-0.17.0"
  
      r = Release("0.17.1", repo=None, issue_tracker=fake_issue_tracker)
      assert isinstance(r, PatchRelease)
      assert r.is_released is True
      assert r.branch == "maint-0.17.x"
      assert r.tag == "apache-arrow-0.17.1"
  
file_path: arrow/dev/archery/archery/release/tests/test_release.py
imports: import pytest
  from archery.release.core import Release, MajorRelease, MinorRelease, PatchRelease, IssueTracker, Version, Issue, CommitTitle, Commit
  from archery.testing import DotDict
label_desc: Use image node_id 5 for calling a global function with example usage: test_release_basics(fake_issue_tracker) without return types